|  27.12.2006, 17:06 | #1 | 
| Программатор | Закрыть программно Infolog 
			
			Люди добрые  Подскажите как грохнуть инфолог. Закрыть формочку эту   | 
|  | 
|  27.12.2006, 17:15 | #2 | 
| Злыдни | 
			
			А зачем? Установите в параметрах уровень детализации "Ошибки" и живите спокойно    
				__________________ люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. | 
|  | 
|  27.12.2006, 17:18 | #3 | 
| Программатор | 
			
			Ну наступает такой момент в жизни когда он не нужен  Ну не нужно пугать пользователя ссобщением, что то то не найдено в Мар  Ни к чему это ему... | 
|  | 
|  27.12.2006, 17:21 | #4 | 
| Участник | X++: infolog.clear(); | 
|  | 
|  27.12.2006, 17:22 | #5 | 
| Программатор | 
			
			Хотя наверно каждый раз как сообщение выходит чистить его... И тогда вроде будет норм.
		 | 
|  | 
|  27.12.2006, 17:23 | #6 | 
| Banned | 
			
			Для 3.0: Изучите класс Info, метод closeInfoLogDelayed().
		 | 
|  | 
|  27.12.2006, 17:25 | #7 | 
| Программатор | |
|  | 
|  27.12.2006, 18:01 | #8 | 
| NavAx | 
			
			Можно тупо заменить код в Info.add на return _exception;
		 
				__________________ Isn't it nice when things just work? | 
|  | 
|  27.12.2006, 18:35 | #9 | 
| Administrator | 
			
			У Map есть метод exists()
		 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  28.12.2006, 09:49 | #10 | 
| Участник | 
			
			Если надо, что бы сообщения инфолог вообще не выводились для какого-то куска кода, можно воспользоваться таким приемом X++: int errorsPerBatch = infolog.errorsPerBatch(); Map map = new Map(Types::Integer, Types::String); ; if (errorsPerBatch < 0) errorsPerBatch = maxint()-1; try { infolog.errorsPerBatch(-1); //--> Сюда вставляем нужный нам код map.lookup(1); //<-- Сюда вставляем нужный нам код infolog.errorsPerBatch(errorsPerBatch); } catch { infolog.errorsPerBatch(errorsPerBatch); } 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | |
| За это сообщение автора поблагодарили: Sada (1), alex55 (1). | |
|  28.12.2006, 10:20 | #11 | 
| Moderator | 
			
			Можно, я таким образом подавлял COM-ошибки при работе с Excel.  Вот только оборачивать каждый вызов вот такой оберткой не очень удобно и читаемо.   А что-либо  более универсальное я, к сожалению, не придумал. | 
|  | 
|  28.12.2006, 10:36 | #12 | 
| Участник | 
			
			Еще вариант, также через try/catch. Класс smmContactPersonsSynchronize, метод copyFieldsFromOutlook, подавляется вывод на экран ненужных сообщений об ошибках: X++: // try { item = outlookNameSpace.GetItemFromID(strupr(_smmOutlookContacts.EntryId)); } catch(exception::Error) { infoLogLine = infolog.line(); // Remove unwanted system error message infolog.cut(infoLogLine, infoLogLine + 1); } 
				__________________ Денис Балуев. | 
|  | 
|  28.12.2006, 17:23 | #13 | 
| Участник | Цитата: 
		
			Сообщение от denny
			   Еще вариант, также через try/catch. Класс smmContactPersonsSynchronize, метод copyFieldsFromOutlook, подавляется вывод на экран ненужных сообщений об ошибках:  X++: // try { item = outlookNameSpace.GetItemFromID(strupr(_smmOutlookContacts.EntryId)); } catch(exception::Error) { infoLogLine = infolog.line(); // Remove unwanted system error message infolog.cut(infoLogLine, infoLogLine + 1); }  можно использовать примерно такой код: X++: int nLines = infolog.line(); try { // какая-то длительная обработка... } catch(exception::Error) { // оставляем только те сообщения, что возникли перед try {} infolog.clear(nLines); } | 
|  | 
|  28.12.2006, 17:43 | #14 | 
| Moderator | 
			
			Если это ответы мне   , то предложенные способы мне бы не подошли, так как исключения выбрасываемые при работе с COM объектами запишут в Infolog то, что они хотели записать и никакой try..catch тут не поможет. | 
|  | 
|  29.12.2006, 14:48 | #15 | 
| MCTS | Цитата: 
		
			Подскажите как грохнуть инфолог. Закрыть формочку эту
		
	 Для этого используем апишную функцию DestroyWindow The DestroyWindow function destroys the specified window Недостаток: убив окно, мы его больше не увидим в текущей сессии или CloseWindow Тhe CloseWindow function minimizes (but does not destroy) the specified window. Можно поступить немного по-другому окно инфолог - это ж форма SysInfologBrowser Итак, в дизайне свойство Frame - Dialog меняем на Standard Всё! Окно становится сворачиваемым. Не хочет пользователь видеть информацию, выводимую в инфолог - пусть сворачивает его. Как я уже выше говорил, программно свернуть инфолог можно функцией CloseWindow 
				__________________  В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню | 
|  | 
|  | 
| 
 |