报告系统的层级结构

此示例显示如何使用根据系统层次结构编号的部分创建报告。每个部分都包含一个包含子系统快照的系统快照和子部分。要创建此类部分,请创建部分对象,添加图表快照​​,然后添加子系统部分。要创建子系统部分,请再次创建一个部分,添加子系统图Snapshot,然后添加其子系统部分。要创建部分的算法是递归的。此示例创建并使用名为CreateSystemSection的本地功能,实现递归算法。

使用createSystemSection函数创建分层报表

打开一个模型。

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

创建并打开一个报表对象。

%将输出类型从"pdf"改为"docx"或"html",以创建% Word或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本地函数

系统部分由系统快照及其子部分中的子系统组成。要创建一个系统节,使用搜索深度为1的slreportgen.finder.DiagramFinder来查找所有系统的一层深度。

函数section = createSystemSection(sys) df = slreportgen.finder.DiagramFinder(sys);df。SearchDepth = 1;%在迭代器模式下使用查找器。下一个函数返回搜索结果%一个接一个,hasNext函数决定什么时候不再有了%的搜索结果。要获得当前系统,调用下一个函数%。sysResult =下一个(df);现在,在系统中使用mlreportgen.report.Section创建一个section% name作为标题。节= mlreportgen.report.Section (...“标题”mlreportgen.utils.normalizeString (sysResult.Name));%添加系统快照和显示完整关系图路径的标题。要包含关于系统的其他信息,请将其添加到%部分对象。诊断接头= slreportgen.report.Diagram (sysResult.Object);diag.Snapshot.appendCaption (sysResult.Path);添加(部分,诊断接头);%要创建子节,循环遍历所有子系统并递归调用% createSystemSection。在调用createSystemSection之前,添加一个分页符%以便每个系统从一个新页面开始。注意,在右边添加一个分页符%之后,系统快照将在报告的末尾添加一个空白页。hasNext(df) childSysResult = next(df);添加(部分,mlreportgen.dom.PageBreak ());分段= createSystemSection (childSysResult.Object);add(节、小节);结束结束