主要内容

slreportgen.report.ExecutionOrder类

包:slreportgen.report
超类:slreportgen.report.Reporter

系统任务和块执行顺序报告器

自从R2020b

描述

对象的对象slreportgen.report.ExecutionOrder类来报告模型或非虚拟子系统的任务以及每个任务中的块,按执行顺序排序。缺省情况下,ExecutionOrder记者生成:

  • 任务名称和属性的表

  • 每个任务中的块列表

有条件执行的块,例如由函数调用或对象触发的子系统如果块,不显示在块执行顺序列表中。相反,这些块显示在条件执行块执行顺序列表后面的表。该表列出了有条件执行的块和触发它们执行的块。

使用ExecutionOrder属性来筛选报告的内容并自定义内容格式。

请注意

使用slreportgen.report.ExecutionOrder报表中的报表,则必须使用slreportgen.report.Report类或子类。一个ExecutionOrder对象中添加的内容不会生成内容slreportgen.report.Report对象,该对象具有CompileModelBeforeReporting设置为

slreportgen.report.ExecutionOrder类是一个处理类。

类属性

HandleCompatible
真正的

有关类属性的信息,请参见类属性

创建

描述

记者= slreportgen.report.ExecutionOrder ()创建一个空ExecutionOrder基于默认模板的报表对象。属性指定要报告其执行顺序的模型或子系统对象财产。使用其他属性指定报表选项。

例子

记者= slreportgen.report.ExecutionOrder (系统创建一个ExecutionOrder报告,并设置对象属性指定为指定的模型或子系统。

记者= slreportgen.report.ExecutionOrder (名称=值使用名称-值对设置报告器属性。您可以以任意顺序指定多个名称-值对参数。

属性

全部展开

要报告的模型或非虚拟子系统块,指定为以下类型的值之一:

指定一个BlockResultDiagramResult表示未加载的模型或虚拟子系统的操作将导致错误。

是否包含任务详细信息表,指定为真正的.如果ShowTaskDetails真正的时,报表将生成一个表,其中显示指定系统中任务的名称和属性。

数据类型:逻辑

是否包含块执行顺序列表,指定为真正的.如果ShowBlockEecutionOrder真正的,报告器为系统中的每个任务包括一个块列表,按执行顺序排序。有条件执行的块,例如由函数调用或如果块,不显示在执行顺序列表中。相反,这些块显示在条件执行块执行顺序列表后面的表。该表列出了有条件执行的块和触发它们执行的块。

数据类型:逻辑

为每个系统任务报告的属性,指定为字符串数组或字符向量的单元格数组。默认情况下,包括所有属性。有效的属性是:

  • 订单—任务在每个时间步的执行顺序中的位置。对于异步和常量任务,此属性报告为N/A

  • 名字—任务名称。

  • 类型—任务类型,例如:周期非周期异步,或常数

  • 触发—周期任务执行速率或非周期任务执行时间列表。

  • TaskID-指定系统中的任务索引。

  • SourceBlock—定义任务的块。

例子:["订单" "名称" "类型" "触发" "TaskID" "SourceBlock"]

例子:{“订单”“名称”“类型”}

是否在任务详细信息表中显示空列,指定为真正的.如果ShowEmptyColumns真正的时,任务详细信息表中包含没有任何数据的列。

数据类型:逻辑

是否在块执行顺序列表中显示每个块的类型,指定为真正的.如果ShowBlocktype真正的,在执行顺序列表中,报告器将每个块的类型包含在块名称旁边。

数据类型:逻辑

是否显示在编译时创建的块,指定为真正的.如果ShowHiddenBlocks真正的,报告包括Simulink的块金宝app®在编译模型时插入。如果ShowHiddenBlocks,报告器只包括用户添加的块。

数据类型:逻辑

是否引用非虚拟子系统的块列表,指定为真正的.如果IncludeSubsystemBlocks为true时,报告器包含对非虚拟子系统块的引用。的SubsystemBlocksDisplayPolicy属性确定如何引用非虚拟子系统块。

数据类型:逻辑

引用非虚拟子系统中块的执行顺序列表的策略,指定为这些字符串标量或字符向量之一:

  • “链接”-(默认)在子系统名称旁边插入一个到子系统的单独块执行顺序列表的链接。只有包含该报表的报表生成程序还包含单独的报表时,该链接才能工作ExecutionOrder子系统的报告器。对于多任务模型中包含子系统的每个任务,该链接将转到子系统报告的相应任务的块执行顺序列表ExecutionOrder记者。没有插入链接MATLAB函数块子系统。

  • “NestedList”—子系统块显示为嵌套列表。

函数或表达式从指定为函数句柄、字符串标量或字符向量的报表中筛选系统任务。将函数指定为函数句柄。将表达式指定为字符串标量或字符向量。如果TaskFilterFcn为空时,所有任务都包含在报告中。

如果你提供了一个函数句柄,关联的函数必须:

  • 以以下论点为例:

    • taskName—任务名称。

    • taskType—任务类型。

    • 触发—任务的采样时间或命中次数。如果将非周期性任务的命中次数指定为表达式,则trigger是包含要计算的表达式的字符串。

    • sourceBlock—定义任务的块。

  • 返回真正的从报表中筛选指定的任务,或将任务包括在报告中。

例如,此代码使用TaskFilterFcn属性仅报告周期性任务:

进口slreportgen.finder。*进口slreportgen.report。*进口mlreportgen.report。*model_name =“slrgex_vdp”;load_system (model_name);rpt = slreportgen.report.Report(“ExecutionOrder_example”“html”);查找器= DiagramFinder(model_name);ch =章节(“图”);hasNext(finder) result = next(finder);只报告框图和非虚拟子系统如果(strcmpi(结果。类型,”金宝app模型。子系统”...& & strcmpi (get_param(结果。对象,“IsSubsystemVirtual”),“关闭”))...| | strcmpi(结果。类型,”金宝app模型。立体图”Section = Section(result.Name);追加(教派,结果);创建ExecutionOrder报表并添加到报表中rptr = ExecutionOrder(result);%过滤除周期性任务外的所有任务filterFcnHandle = @(taskName, taskType,触发器,sourceBlock)...~ strcmpi (taskType“周期”);rptr。TaskFilterFcn = filterFcnHandle;追加(教派,rptr);追加(ch,教派);结束结束追加(rpt, ch);关闭(rpt);rptview (rpt);

如果提供字符串标量或字符向量,则必须包含表达式。表达式:

  • 可以使用变量taskNametaskType触发,sourceBlock

  • 必须设置变量isFiltered真正的从报表中筛选指定的任务,或将任务包括在报告中

例如,此代码使用TaskFilterFcn属性仅报告周期性任务:

进口slreportgen.finder。*进口slreportgen.report。*进口mlreportgen.report。*model_name =“slrgex_vdp”;load_system (model_name);rpt = slreportgen.report.Report(“ExecutionOrder_example”“html”);查找器= DiagramFinder(model_name);ch =章节(“图”);hasNext(finder) result = next(finder);只报告框图和非虚拟子系统如果(strcmpi(结果。类型,”金宝app模型。子系统”...& & strcmpi (get_param(结果。对象,“IsSubsystemVirtual”),“关闭”))...| | strcmpi(结果。类型,”金宝app模型。立体图”Section = Section(result.Name);追加(教派,结果);创建ExecutionOrder报表并添加到报表中rptr = ExecutionOrder(result);%过滤除周期性任务外的所有任务只包含异步任务的代码字符串filterStr ="isFiltered = ~strcmpi(taskType, ""Periodic"");";rptr。TaskFilterFcn = filterStr;追加(教派,rptr);追加(ch,教派);结束结束追加(rpt, ch);关闭(rpt);rptview (rpt);

任务详细信息表的格式化程序,指定为mlreportgen.report.BaseTable对象。此属性的默认值是aBaseTable对象的TableStyleName属性设置为ExecutionOrderTable类的默认模板中定义的ExecutionOrder记者。若要自定义表的外观,请修改默认表的属性BaseTable对象或将该对象替换为您自己的对象BaseTable对象。中添加内容标题的属性BaseTable对象时,内容显示在生成的报表中的表标题前面。

块执行顺序列表的格式化程序,指定为mlreportgen.dom.OrderedList对象或mlreportgen.dom.UnorderedList对象。的OrderedListUnorderedList对象不能包含列表项。

此属性的默认值是anOrderedList对象的StyleName属性属性设置为ExecutionOrderList类的默认模板中定义的ExecutionOrder记者。若要自定义列表的外观,请修改默认列表的属性OrderedList对象或将该对象替换为您自己的对象OrderedListUnorderedList对象。

此报告的模板源,指定为以下选项之一:

  • 字符向量或字符串标量,指定包含此报表模板的文件的路径

  • 报表或报表,其模板用于此报表,或其模板库包含此报表的模板

  • DOM文档或文档部分,其模板用于此报表,或其模板库包含此报表的模板

指定的模板必须与该报表附加到的报表类型相同。例如,对于a微软®报告,TemplateSrc必须是Word报表模板。如果TemplateSrc属性为空时,此报表将为报表的输出类型使用默认报表模板。

此报表的模板名称,指定为字符向量或字符串标量。此报告的模板必须在模板源的模板库中(TemplateSrc)。

的超链接目标,指定为字符向量或指定链接目标ID的字符串标量,或指定为mlreportgen.dom.LinkTarget对象。字符向量或字符串标量值转换为LinkTarget对象。在输出报告中,链接目标紧跟在此报告器的内容之前。

方法

全部展开

例子

全部折叠

对于每个框图或虚拟子系统的slrgex_vdp建模,报告系统任务和每个任务中的块,按执行顺序。

导入MATLAB和Simulink Repo金宝apprt API包,这样您就不必使用长且完全限定的类名。

进口mlreportgen.report。*进口slreportgen.finder。*进口slreportgen.report。*

打开模型并创建一个报告。

model_name =“slrgex_vdp”;load_system (model_name);rpt = slreportgen.report.Report(“ExecutionOrder_example”“pdf”);

创建一个查找器来查找模型中的所有图。创建一个一章。

查找器= DiagramFinder(model_name);ch =章节(“图”);

类的默认值,对于每个框图或非虚拟子系统,按执行顺序报告系统任务和块slreportgen.report.ExecutionOrder记者属性。

hasNext(finder) result = next(finder);如果(strcmpi(结果。类型,”金宝app模型。子系统”) & &...strcmpi (get_param(结果。对象,“IsSubsystemVirtual”),“关闭”))...| | strcmpi(结果。类型,”金宝app模型。立体图”) section = mlreportgen.report.Section(result.Name);追加(教派,结果);rptr = slreportgen.report.ExecutionOrder(result);追加(教派,rptr);追加(ch,教派);结束结束

把这一章附在报告后面。关闭并查看报表。

追加(rpt, ch);关闭(rpt);rptview (rpt);

版本历史

R2020b中介绍