DOM API включает набор сообщений, которые могут отображаться при генерации отчета. Сообщения инициируются каждый раз, когда элемент документа создается или добавляется во время генерации отчета.
Можно задать дополнительные сообщения для просмотра во время генерации отчета. DOM API предоставляет эти классы для определения сообщений:
ProgressMessage
DebugMessage
WarningMessage
ErrorMessage
DOM API предоставляет дополнительные классы для обработки отправки и отображения сообщений отчета. Он использует MATLAB® события и прослушиватели для отправки сообщений. Сообщение отправляется на основе данных о событиях для указанного объекта DOM. Введение в события и прослушиватели смотрите в Событие и Концепции прослушивателя.
Примечание
При создании диспетчера сообщений DOM API сохраняет диспетчера до конца текущего сеанса работы с MATLAB. Удалите прослушиватели событий сообщений, чтобы избежать дублирования отчетов об объектах сообщений во время сеанса работы с MATLAB.
В этом примере показано, как отобразить сообщения отладки DOM по умолчанию. Используйте аналогичный подход для отображения других видов сообщений отчетов DOM.
Создайте диспетчера сообщений, используя MessageDispatcher.getTheDispatcher
способ. Используйте одного и того же диспетчера для всех сообщений.
dispatcher = MessageDispatcher.getTheDispatcher;
Используйте 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
сообщение и сообщения, которые DOM API отправляет по умолчанию.
dispatch
| formatAsHTML
| formatAsText
| mlreportgen.dom.MessageDispatcher.getTheDispatcher
| passesFilter