MATLAB®报告生成器™允许您根据。定义自定义报表mlreportgen.report.Reporter
类或内置的Report API报告程序。当内置报表能够满足您的大部分需求,并且您希望重新安排或扩展报表内容时,您可以将报表基于内置报表。看到子类化报告器定义.让你的记者mlreportgen.report.Reporter
类定义一个全新的报告器。
创建一个基于mlreportgen.report.Reporter
,可以使用mlreportgen.report.Reporter.customizeReporter
方法。该方法创建一个骨架类定义文件,并为每个报告输出类型复制默认模板文件。
要完成自定义报表的定义:
在报告人支持的每种报表输出类型的模板文件中,为报告人生成的动态内容定义固定内容和洞。金宝app
在自定义报告器类中,定义与模板孔对应的属性。
要在Report API报表中使用报表,请创建报表类的对象,设置属性值,并将对象附加到报表中。
为自定义报告器类创建类定义文件,并通过调用mlreportgen.report.Reporter.customizeReporter
方法。提供要创建的类的路径和名称作为方法的输入参数。要在类文件夹中创建报告器类,请在类名前面加上@
的性格。
例如,这段代码创建了一个类文件MyTitlePage.m
在名为@MyTitlePage
:
mlreportgen.report.Reporter.customizeReporter (“@MyTitlePage”)
类定义文件MyTitlePage.m
包含:
classdefMyTitlePage < mlreportgen.report.Reporter属性结束方法函数obj = MyTitlePage(varargin) obj = obj@mlreportgen.report.Reporter(varargin{:});结束结束方法(隐藏)函数MyTitlePage.getClassFolder(); / / MyTitlePage.getClassFolder();templatePath =...mlreportgen.report.ReportForm.getFormTemplatePath (...路径,rpt.Type);结束结束方法(静态)函数[path] = getClassFolder() [path] = fileparts(' fullpath '));结束函数createTemplate(templatePath, type) path = MyTitlePage.getClassFolder();mlreportgen.report.ReportForm.createFormTemplate (...templatePath、类型、路径);结束函数customizeReporter toClasspath mlreportgen.report.ReportForm.customizeClass (...toClasspath,“MyTitlePage”);结束结束
getDefaultTemplatePath
.基报告器类使用getDefaultTemplatePath
方法检索MyTitlePage
添加报表的报表输出类型对应的报表模板。例如,如果将报告器添加到mlreportgen.report.Report
对象的输出类型为PDF时,基报告器类返回驻留在资源/模板/ pdf
报表定义文件夹的子文件夹。
的mlreportgen.report.Reporter.customizeReporter
方法中存储每个报告输出类型的默认模板文件的副本资源/模板
包含类定义文件的文件夹的子文件夹。模板文件的相对路径资源/模板
是:
多克斯/ default.dotx
pdf / default.pdftx
html / default.htmt
html / default.htmtx
例如,@MyTitlePage
文件夹有这样的结构:
通过为自定义报表生成的动态内容定义固定内容和孔来自定义模板文件。您只需要为自定义报表支持的报表输出类型定制模板文件。金宝app例如,如果记者只支持Word报表,则只需要自定义金宝appdotx
模板文件。
如果自定义报表需要多个模板,请将模板库中的模板存储在模板文件中。如果报告器只需要一个模板,您可以将模板内容存储在模板文件的主体中,也可以存储在模板库中的模板中。例如,对于MyTitlePage
Reporter只需要一个模板,您可以将模板固定内容和动态内容孔添加到模板文件的主体或命名为的条目中MyTitlePage
在模板文件库中。
在模板文件的样式表中定义模板使用的样式。
在自定义报告器类中:
为模板定义的每个孔定义一个属性,包括页眉和页脚中的孔。与洞对应的属性必须与洞的名称相同。例如,如果报告模板定义了一个名为标题
,类定义文件必须定义名为标题
.
如果报告使用模板文件模板库中存储的模板,则在构造函数中添加设置属性的行TemplateName
到记者模板的名字。您不必在类定义文件中指定此属性,因为自定义类从基类继承此属性slreportgen.report.Reporter
类。
例如,这个类定义文件定义标题
,作者
,版本
属性,并指定模板名称MyTitlePage
classdefMyTitlePage < mlreportgen.report.Reporter属性Title ="";作者="";Version ="";结束方法函数obj = MyTitlePage(varargin) obj = obj@mlreportgen.report.Reporter(varargin{:});obj。TemplateName =“MyTitlePage”;结束结束方法(隐藏)函数MyTitlePage.getClassFolder(); / / MyTitlePage.getClassFolder();templatePath =...mlreportgen.report.ReportForm.getFormTemplatePath (...路径,rpt.Type);结束结束方法(静态)函数[path] = getClassFolder() [path] = fileparts(' fullpath '));结束函数createTemplate(templatePath, type) path = MyTitlePage.getClassFolder();mlreportgen.report.ReportForm.createFormTemplate (...templatePath、类型、路径);结束函数customizeReporter toClasspath mlreportgen.report.ReportForm.customizeClass (...toClasspath,“MyTitlePage”);结束结束结束
使用您的自定义记者:
创建报告器类的对象。
设置在类中定义的属性的值。
将对象追加到报告中。
例如:
进口mlreportgen.report。*rpt =报告(“myreport”,“pdf”);titlePage = MyTitlePage;titlePage。Title =“我的报告”;titlePage。作者=“我”;titlePage。Version =“1.0”追加(rpt titlePage);关闭(rpt);rptview (rpt);
mlreportgen.dom.Document
|mlreportgen.dom.Text
|mlreportgen.report.Report
|mlreportgen.report.TableOfContents
|mlreportgen.report.TitlePage