Отображение сообщений о прогрессе и отладчике

Сообщения генерации отчетов

DOM API включает набор сообщений, которые могут отображаться при генерации отчета. Сообщения инициируются каждый раз, когда элемент документа создается или добавляется во время генерации отчета.

Можно задать дополнительные сообщения для просмотра во время генерации отчета. DOM API предоставляет эти классы для определения сообщений:

  • ProgressMessage

  • DebugMessage

  • WarningMessage

  • ErrorMessage

DOM API предоставляет дополнительные классы для обработки отправки и отображения сообщений отчета. Он использует MATLAB® события и прослушиватели для отправки сообщений. Сообщение отправляется на основе данных о событиях для указанного объекта DOM. Введение в события и прослушиватели смотрите в Событие и Концепции прослушивателя.

Примечание

При создании диспетчера сообщений DOM API сохраняет диспетчера до конца текущего сеанса работы с MATLAB. Удалите прослушиватели событий сообщений, чтобы избежать дублирования отчетов об объектах сообщений во время сеанса работы с MATLAB.

Отображение сообщений по умолчанию для DOM

В этом примере показано, как отобразить сообщения отладки DOM по умолчанию. Используйте аналогичный подход для отображения других видов сообщений отчетов DOM.

  1. Создайте диспетчера сообщений, используя MessageDispatcher.getTheDispatcher способ. Используйте одного и того же диспетчера для всех сообщений.

    dispatcher = MessageDispatcher.getTheDispatcher;
    
  2. Используйте MessageDispatcher.Filter свойство, заданное для отображения отладки сообщений.

    dispatcher.Filter.DebugMessagesPass = true;
    
  3. Добавьте прослушиватель, используя addlistener MATLAB функция. Укажите объект диспетчера, источник и данные о событиях и disp функция, которая задает данные о событиях и формат, используемые для сообщения.

    l = addlistener(dispatcher,'Message', ...
          @(src, evtdata) disp(evtdata.Message.formatAsText));
    
  4. Включите код для удаления прослушивателя. Поместите его после кода, который генерирует отчет.

    delete(l);
    

В этом отчете отображаются сообщения отладки.

import mlreportgen.dom.*;
d = Document('test','html');

dispatcher = MessageDispatcher.getTheDispatcher;
dispatcher.Filter.DebugMessagesPass = true;

l = addlistener(dispatcher,'Message', ...
      @(src, evtdata) disp(evtdata.Message.formatAsText));

open(d);

p = Paragraph('Chapter ');
p.Tag = 'chapter title';
p.Style = { CounterInc('chapter'),...
    CounterReset('table'),WhiteSpace('pre') };
append(p, AutoNumber('chapter'));
append(d,p);

close(d);
rptview('test','html');
     
delete(l);

Создание и отображение сообщения о прогрессе

В этом примере показано, как создать и отправить сообщение о прогрессе. Можно использовать аналогичный подход для других видов сообщений, таких как предупреждения.

  1. Создайте диспетчера сообщений.

    dispatcher = MessageDispatcher.getTheDispatcher;
    
  2. Добавьте прослушиватель, используя addlistener MATLAB функция.

    l = addlistener(dispatcher,'Message', ...
          @(src, evtdata) disp(evtdata.Message.formatAsText));
    
  3. Отправьте сообщение, используя Message.dispatch способ. Укажите объект диспетчера и сообщение для отправки. Здесь сообщение отладки называется starting chapter, и Document d объекта является источником сообщения.

    dispatch(dispatcher,ProgressMessage('starting chapter',d));
    
  4. Включите код для удаления прослушивателя после кода, который генерирует отчет.

    delete(l);
    

Этот отчет использует это сообщение о прогрессе.

import mlreportgen.dom.*;
d = Document('test','html');

dispatcher = MessageDispatcher.getTheDispatcher;

l = addlistener(dispatcher,'Message', ...
      @(src, evtdata) disp(evtdata.Message.formatAsText));

open(d);
dispatch(dispatcher,ProgressMessage('starting chapter',d));

p = Paragraph('Chapter ');
p.Tag = 'chapter title';
p.Style = { CounterInc('chapter'),...
    CounterReset('table'),WhiteSpace('pre') };
append(p, AutoNumber('chapter'));
append(d,p);

close(d);
rptview('test','html');
     
delete(l);

Командное окно MATLAB отображает сообщения о прогрессе, включая starting chapter сообщение и сообщения, которые DOM API отправляет по умолчанию.

См. также

Функции

Классы