这个示例展示了如何创建一个报告,其中的部分根据系统层次结构进行编号。每个部分包含一个系统快照和包含子系统快照的子部分。要创建这样一个部分,请创建一个部分对象,添加一个图表快照,然后添加子系统部分。要创建子系统部分,请再次创建一个部分,添加一个子系统关系图快照,然后添加它的子系统部分。创建分段的算法是递归的。这个示例创建并使用一个名为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);
系统部分由系统快照及其子部分中的子系统组成。要创建一个系统节,使用搜索深度为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(节、小节);结束结束