指定组件要执行的任务
关于组件自定义
构建组件会在 MATLAB® 工作区中创建 MATLAB 文件。通过编辑这些 MATLAB 文件来指定您希望组件执行的任务。
注意
您必须通过编辑 execute.m 来指定报告输出的格式和内容。在报告生成期间调用此文件来调用组件的任务。或者,您可以通过编辑其他 MATLAB 文件来指定其他组件属性和行为。
有关详细信息,请参阅以下部分:
所需自定义:指定报告输出的格式和内容
构建组件后,通过编辑 execute.m 文件指定报告输出的格式和内容。
execute 命令具有以下语法:
out = execute(thisComp, parentDoc)
其中:
thisComp是您正在运行的组件的句柄。parentDoc是您正在生成的文档的句柄。out是要添加到报告中的文档对象模型 (DOM) 节点或字符串。有关操作 DOM 节点的信息,请参阅 MATLAB 文档中的
xmlwrite。
execute.m 文件中的一行或多行默认代码显示组件的每个属性。以下是 execute.m 文件中组件属性行的示例:
pstring = thisComp.NewStringProperty; % New string property;
以下部分介绍如何编辑 execute.m 以创建其他报告元素。
创建表
要创建表,请将 Source 属性值替换为元胞数组或结构体的名称:
out = execute(rptgen.cfr_table(... "Source", tableSrc,... "numHeaderRows",1,... "TableTitle","Example Title"),... parentDoc);
欲了解更多信息,请在 MATLAB 命令行输入 help(rptgen.cfr_table)。
创建列表
要创建列表,请将 Source 属性值替换为单元格向量的名称:
out = execute(rptgen.cfr_list(... "Source", listSrc,... "ListStyle","orderedlist",... "ListTitle","Example List"),... parentDoc);
欲了解更多信息,请在 MATLAB 命令行输入 help(rptgen.cfr_list)。
创建文本
要创建文本,请将 ParaText 属性值替换为字符向量:
out = execute(rptgen.cfr_paragraph(... "ParaText", paraSrc,... parentDoc);
欲了解更多信息,请在命令行输入 help(rptgen.cfr_paragraph)。
创建图窗
要创建图窗,请在 FigureHandle 属性值中指定一个图窗。
figSrc = gcf; out = execute(rptgen_hg.chg_fig_snap(... "FigureHandle", figSrc,... "Title", "",... "isResizeFigure", "manual",... "PrintSize", [6 4],... "PrintUnits", "inches"),... parentDoc);
欲了解更多信息,请在 MATLAB 命令行输入 help(rptgen_hg.chg_fig_snap)。
运行子组件
以下代码运行子组件。第一行调用 execute.m 来获取子组件。第二行将运行子组件的结果追加到报告中:
childOut = thisComp.runChildren(parentDoc); out = parentDoc.createDocumentFragment(out, childOut);
在报告资源管理器层次结构中更改组件的大纲文本
要更改用于描述报告资源管理器层次结构中的组件的字符串,请编辑 getOutlineString MATLAB 文件。默认情况下,getoutlinestring 返回组件的显示名称。getOutlineString 命令具有以下语法:
olstring = getOutlineString(thisComp)
其中:
thisComp是您正在指定其描述的组件。olstring是显示有关组件的信息的单行。最多可包含 32 个字符。
自定义字符串以包含有关组件的附加信息,例如有关其属性的信息。在下面的示例中,truncatestring 函数将输入数据转换为单行字符向量。如果数据为空,第二个参量是返回值,第三个参量是结果字符向量的最大允许大小。
cInfo = ""; pstring = rptgen.truncateString(thisComp.string,"<empty>",16);
使用破折号 (-) 作为名称和其他组件信息之间的分隔符,如下所示:
if ~isempty(cInfo) olstring = [olstring, "-", cInfo]; end
修改属性对话框的外观
您可以编辑 getdialogschema.m 文件来控制对话框布局的大多数方面,包括:
创建和放置小部件
将小部件组织到窗格中
创建窗格所在的顶层显示
该命令的语法是:
dlgstruct = getdialogschema(thisComp, name)
其中:
thisComp是正在编辑的组件的实例。name是一个字符向量,它传递给getdialogschema来构建特定类型的窗格。通常,报告资源管理器中的name为空。
注意
请勿修改此文件中未明确包含的字段。这些字段在未来的版本中可能会发生变化。
指定其他组件属性
您可以编辑其他 MATLAB 文件来进一步自定义您的组件。要访问这些文件,请在报告资源管理器左侧的大纲窗格中右键点击该组件,然后从其上下文菜单中选择编辑文件。

有关详细信息,请参阅以下部分:
指定组件是否可以有子组件
要指定组件是否可以有子组件,请编辑 getParentable.m。此命令返回值 true 或 false。例如,如果您不再希望您的组件有子组件,请按如下方式修改代码中的值:
p = false;
修改组件描述
getDescription.m 中的描述与报告资源管理器中的描述字段的值相同。以下示例显示如何编辑此文件中的 compDesc 值以将组件的描述更改为 An example component:
compDesc = "An example component";更改组件显示名称
getName.m 中的显示名称与报告资源管理器中的显示名称字段的值相同。以下示例显示如何编辑此文件中的 compName 值以将组件的显示名称更改为 Example Component:
compName = "Example Component";更改组件类别名称
getType.m 中的类别名称与报告资源管理器中的类别名称字段的值相同。以下示例显示如何编辑此文件中的 compCategory 值以将组件的类别名称更改为 Custom Components:
compCategory = "Custom Components";注册组件
您可以使用 rptcomps2.xml 在报告资源管理器中注册组件。该文件还有助于构建可用组件的列表。
此文件的内容必须与 getName.m 和 getType.m 文件中的值一致。如果您更改了其中任一文件中的值,则还必须更改 rptcomps2.xml 中的值。您必须重新启动 MATLAB 软件会话,以便报告资源管理器显示新信息。
在系统 Web 浏览器中显示组件帮助
viewHelp.m 文件在系统 Web 浏览器中显示该组件的帮助文件。要显示帮助文件,请在报告资源管理器中突出显示组件的名称,然后点击帮助。