显示进度和调试器消息
报告生成消息
DOM API 包含一组可在生成报告时显示的消息。在报告生成过程中每次创建或追加文档元素时都会触发消息。
您可以定义在报告生成期间显示的其他消息。DOM API 提供了以下类来定义消息:
ProgressMessageDebugMessageWarningMessageErrorMessage
DOM API 提供了用于处理报告消息分发和显示的附加类。它使用 MATLAB® 事件和侦听程序来发送消息。根据指定 DOM 对象的事件数据发送消息。有关事件和侦听程序的介绍,请参阅 事件和侦听程序概念。
注意
当您创建消息调度程序时,DOM API 会保留该调度程序直到当前 MATLAB 会话结束。删除消息事件侦听程序,以避免在 MATLAB 会话期间重复报告消息对象。
显示 DOM 默认消息
此示例显示如何显示默认的 DOM 调试消息。使用类似的方法显示其他类型的 DOM 报告消息。
使用
MessageDispatcher.getTheDispatcher方法创建消息调度程序。对所有消息使用相同的调度程序。dispatcher = MessageDispatcher.getTheDispatcher;
使用
MessageDispatcher.Filter属性指定显示调试消息。dispatcher.Filter.DebugMessagesPass = true;
使用 MATLAB
addlistener函数添加侦听程序。指定调度程序对象、源和事件数据以及指定用于消息的事件数据和格式的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;
使用 MATLAB
addlistener函数添加侦听程序。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|mlreportgen.dom.MessageDispatcher.getTheDispatcher|formatAsHTML|formatAsText|passesFilter