|
27.12.2006, 17:06 | #1 |
Программатор
|
Закрыть программно Infolog
Люди добрые Подскажите как грохнуть инфолог. Закрыть формочку эту
|
|
27.12.2006, 17:15 | #2 |
Злыдни
|
А зачем? Установите в параметрах уровень детализации "Ошибки" и живите спокойно
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
27.12.2006, 17:18 | #3 |
Программатор
|
Ну наступает такой момент в жизни когда он не нужен Ну не нужно пугать пользователя ссобщением, что то то не найдено в Мар Ни к чему это ему...
|
|
27.12.2006, 18:35 | #4 |
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 |
|
27.12.2006, 17:21 | #5 |
Участник
|
X++: infolog.clear(); |
|
27.12.2006, 17:22 | #6 |
Программатор
|
Хотя наверно каждый раз как сообщение выходит чистить его... И тогда вроде будет норм.
|
|
27.12.2006, 17:23 | #7 |
Banned
|
Для 3.0: Изучите класс Info, метод closeInfoLogDelayed().
|
|
27.12.2006, 17:25 | #8 |
Программатор
|
|
|
27.12.2006, 18:01 | #9 |
NavAx
|
Можно тупо заменить код в Info.add на return _exception;
__________________
Isn't it nice when things just work? |
|
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
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
|
|