exponenta event banner

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

Сообщения о создании отчетов

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. Добавление прослушивателя с помощью MATLAB addlistener функция. Укажите объект диспетчера, исходные данные и данные события, а также 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. Добавление прослушивателя с помощью MATLAB addlistener функция.

    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.

См. также

Функции

Классы