AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.05.2006, 11:20   #1  
malex is offline
malex
Участник
 
164 / 19 (1) ++
Регистрация: 10.08.2004
Адрес: Тверь, Москва
Как временно запретить вывод сообщений в Infolog?
Ситуация такая.
Вызываю findRange для ComExcelDocument_RU с именованной ячейкой, которой не существует. Перехватываю exception... Все вроде нормально, но в infolog все равно пишется сообщение об ошибки.

Как запретить вывод сообщений во время операции findRange?

Заранее спасибо за ответ.
Старый 30.05.2006, 11:28   #2  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
infolog.cut() не поможет?
(но он конечно же не запрещает вывод в инфолог.)
__________________
С уважением, kvan.
Старый 30.05.2006, 11:30   #3  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Поищи по форуму строчку infolog.

Что приходит на память, это Подавить info в репорте
и infolog

С Уважением,
Георгий
Старый 30.05.2006, 11:35   #4  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Можно не подавлять вывод, а по завершении очистить инфолог: infolog.clear().
Может быть это более простое решение вам подойдет?
Старый 30.05.2006, 11:56   #5  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Можно еще временно отключить вывод сообщений в InfoLog таким вот образом:
PHP код:
    ttsbegin;
    
select forUpdate userInfo
        where userInfo
.id == curUserId();
    
oldInfologLevel userInfo.infologLevel;
    
userInfo.infologLevel SysInfologLevel::None;
    
userInfo.update();
    ...
    
// обработка, кот. может выдать сообщения
    
...
    
userInfo.infologLevel oldInfologLevel;
    
userInfo.update();
    
ttscommit
__________________
Андрей.
Старый 30.05.2006, 11:59   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Я написал дополнительный метод на проверку самого факта существования именованной ячейки. Перед попыткой получить на нее ссылку проверяю факт существования.

PHP код:
// MVB, 14.09.2004 Существует ли указанный Range в листе Excel
// Имеет смысл при использовании именованных ячеек
// bookMark -> Excel bookmark name
public boolean rtg_existsRange(MSOfficeBookMark_RU bookMark,int _workSheetId 1)
{
    
COM         comRange,
                
comWorkSheet,
                
comApplication;

    
boolean     existsRange false;
    
str         strRange;
    ;

    if (
m_comDocument)
    {
        
comWorkSheet   this.getWorkSheet(_workSheetId);
        
comApplication m_comDocument.application();
        
comWorkSheet.activate();

        if (
comWorkSheet && comApplication)
        {
            try
            {
                
// Ошибка в Range генерит сообщение об ошибке, которое не подавляется Try...Catch
                // comRange = comApplication.range(bookMark);
                // Поэтому использую "макроподстановку" Evaluate
                
comRange comApplication.evaluate(bookMark);
                
// В объекте comRange нет метода Error(), поэтому штатно прочитать ошибку не получается
                // Конвертирую объект в строку и ищу в нем ключевое слово "ERROR"
                
strRange comRange.toString();
                if (
strScan(strRange,'ERROR',1,strLen(strRange)) == 0)
                {
                    
existsRange true;
                }
            }
            catch (
exception::Error)
            {
                
existsRange false;
            }
        }
    }
    return 
existsRange;

Старый 30.05.2006, 21:19   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Еще один способ - можно воспользоваться такой возможностью класса Info
X++:
    int    errorsPerBatch;
    ;
    errorsPerBatch = infolog.errorsPerBatch();
    infolog.errorsPerBatch(-1);
    try
    {
        // выполняем нужные действия
        ...

        infolog.errorsPerBatch(errorsPerBatch);
    }
    catch
    {
        infolog.errorsPerBatch(errorsPerBatch);
    }
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: plumbum (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gatesasbait: How to temporarily suppress infolog messages in Dynamics Ax (deux) Blog bot DAX Blogs 7 28.01.2009 17:45
DAX 4.0: infolog & workspaceNum petergunn DAX: Программирование 3 22.01.2009 11:32
gatesasbait: How to temporarily suppress infolog messages in Dynamics Ax Blog bot DAX Blogs 0 10.12.2008 00:06
Kashperuk Ivan: SysInfoAction class description - Improve your Infolog Blog bot DAX Blogs 0 17.09.2008 03:23
casperkamal: Customizing Infolog through SysInfoAction Blog bot DAX Blogs 0 30.01.2007 20:20
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:17.