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

Сообщите о сообщениях генерации

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

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

  • ProgressMessage

  • DebugMessage

  • WarningMessage

  • ErrorMessage

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

Примечание

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

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

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

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

    dispatcher = MessageDispatcher.getTheDispatcher;
    dispatcher.Filter.DebugMessagesPass = true;
    
  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 и сообщения отправки API DOM по умолчанию.

Смотрите также

Функции

Классы