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

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

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

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

  • ProgressMessage

  • DebugMessage

  • WarningMessage

  • ErrorMessage

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

Примечание

Когда вы создаете диспетчера сообщения, API DOM сохраняет диспетчера до конца текущего сеанса работы с 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 обменивайтесь сообщениями и сообщения отправки API DOM по умолчанию.

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

Функции

Классы