主要内容

报告系统的层级结构

这个例子展示了如何创建一个报告部分,根据编号系统的层次结构。每个部分包含一个系统快照和部分包含子系统的快照。创建这样一个部分,创建一个部分对象,添加图快照,然后添加子系统部分。创建子系统部分,再创建一个部分中,添加一个快照,然后添加子系统部分子系统图。该算法创建部分是递归的。这个例子中创建和使用一个本地函数称为createSystemSection,它实现了递归算法。

使用createSystemSection创建层次报告功能

打开一个模型。

模型=“slrgex_sf_car”;open_system(模型);

创建和打开一个报告对象。

%输出类型从“pdf”更改为“多克斯”或“html”来创建一个分别为%词或HTML报告。rpt = slreportgen.report.Report (“myreport”,“pdf”);打开(rpt);

添加一个标题页。

titlepage = mlreportgen.report.TitlePage ();titlepage。Title =“分级报告”;add (rpt, titlepage);

添加一个目录的数量水平设置为6,这是最大的。

toc = mlreportgen.report.TableOfContents ();toc.TOCObj。NumberOfLevels = 6;add (rpt, toc);

为模型创建系统部分通过调用createSystemSection本地函数(见下文)。这个函数递归地调用自身创建部分子系统。

节= createSystemSection(模型);添加(rpt,部分);

生成和显示报告。

关闭(rpt);rptview (rpt);

定义createSystemSection本地函数

系统部分组成的一个系统快照和部分的子系统。创建一个系统部分,找到所有系统使用一个slreportgen.finder一层深。DiagramFinder SearchDepth的1。

函数节= createSystemSection (sys) df = slreportgen.finder.DiagramFinder(系统);df。SearchDepth = 1;%使用finder迭代器模式。下一个函数返回搜索结果%一和hasNext函数决定当没有更多的%的搜索结果。获取当前系统调用下一个函数%。sysResult =下一个(df);%,使用mlreportgen.report创建一个部分。部分与系统%名称作为标题。节= mlreportgen.report.Section (“标题”mlreportgen.utils.normalizeString (sysResult.Name));%添加一个系统快照和一个标题,显示了完整的图路径。%,包括额外的关于系统的信息,将其添加到%部分对象。诊断接头= slreportgen.report.Diagram (sysResult.Object);diag.Snapshot.appendCaption (sysResult.Path);添加(部分,诊断接头);%创建部分,遍历所有子系统和递归调用% createSystemSection。在调用createSystemSection之前,添加一个分页符%,所以每个系统从新的一页开始。注意,添加一个分页符%在系统快照将添加一个空白页的最后报告。hasNext (df) childSysResult =下一个(df);添加(部分,mlreportgen.dom.PageBreak ());分段= createSystemSection (childSysResult.Object);add(节、小节);结束结束