API DOM включает набор сообщений, которые могут отобразиться, когда вы генерируете отчет. Сообщения инициированы каждый раз, когда элемент документа создан или добавлен во время генерации отчета.
Можно задать дополнительные сообщения, чтобы отобразиться во время генерации отчета. API DOM обеспечивает эти классы для определения сообщений:
ProgressMessage
DebugMessage
WarningMessage
ErrorMessage
API DOM обеспечивает дополнительные классы для обработки диспетчеризации сообщения отчета и отображения. Это использует события MATLAB® и прослушиватели, чтобы диспетчеризировать сообщения. Сообщение диспетчеризируется на основе данных о событиях для заданного Объекта DOM. Для введения в события и прослушиватели, смотрите Событие и Концепции прослушивателя.
Примечание
Когда вы создаете диспетчера сообщения, API DOM сохраняет диспетчера до конца текущего сеанса работы с MATLAB. Удалите прослушиватели события сообщения, чтобы избежать дублирующегося создания отчетов объектов сообщения во время сеанса работы с MATLAB.
В этом примере показано, как отобразить сообщения отладки DOM по умолчанию. Используйте аналогичный подход для отображения других видов сообщений отчета DOM.
Создайте диспетчера сообщения, с помощью MessageDispatcher.getTheDispatcher
метод. Используйте того же диспетчера для всех сообщений.
dispatcher = MessageDispatcher.getTheDispatcher; dispatcher.Filter.DebugMessagesPass = true;
Используйте MessageDispatcher.Filter
свойство задать, чтобы отобразить сообщения отладки.
dispatcher.Filter.DebugMessagesPass = true;
Добавьте прослушиватель с помощью addlistener
MATLAB функция. Задайте объект диспетчера, исходные данные и данные о событиях и
disp
функция, которая задает данные о событиях и формат, чтобы использовать для сообщения.
l = addlistener(dispatcher,'Message', ... @(src, evtdata) disp(evtdata.Message.formatAsText));
Включайте код, чтобы удалить прослушиватель. Поместите его после кода, который генерирует отчет.
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);
В этом примере показано, как создать и диспетчеризировать сообщение о ходе выполнения. Можно использовать аналогичный подход для других видов сообщений, таких как предупреждения.
Создайте диспетчера сообщения.
dispatcher = MessageDispatcher.getTheDispatcher;
Добавьте прослушиватель с помощью addlistener
MATLAB функция.
l = addlistener(dispatcher,'Message', ... @(src, evtdata) disp(evtdata.Message.formatAsText));
Диспетчеризируйте сообщение, с помощью Message.dispatch
метод. Задайте объект диспетчера и сообщение, чтобы диспетчеризировать. Здесь сообщение является сообщением отладки под названием starting chapter
, и Document
объект d
источник сообщения.
dispatch(dispatcher,ProgressMessage('starting chapter',d));
Включайте код, чтобы удалить прослушиватель после кода, который генерирует отчет.
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 по умолчанию.
dispatch
| formatAsHTML
| formatAsText
| mlreportgen.dom.MessageDispatcher.getTheDispatcher
| passesFilter