主要内容

报告系统的层级结构

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

使用createSystemSection函数创建分层报表

打开一个模型。

模型=“slrgex_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(节、小节);结束结束