主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

指定组件要执行的任务

关于组件自定义

构建组件会在 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 文件来进一步自定义您的组件。要访问这些文件,请在报告资源管理器左侧的大纲窗格中右键点击该组件,然后从其上下文菜单中选择编辑文件

Outline pane with component right-clicked to bring up content menu

有关详细信息,请参阅以下部分:

指定组件是否可以有子组件

要指定组件是否可以有子组件,请编辑 getParentable.m。此命令返回值 truefalse。例如,如果您不再希望您的组件有子组件,请按如下方式修改代码中的值:

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.mgetType.m 文件中的值一致。如果您更改了其中任一文件中的值,则还必须更改 rptcomps2.xml 中的值。您必须重新启动 MATLAB 软件会话,以便报告资源管理器显示新信息。

在系统 Web 浏览器中显示组件帮助

viewHelp.m 文件在系统 Web 浏览器中显示该组件的帮助文件。要显示帮助文件,请在报告资源管理器中突出显示组件的名称,然后点击帮助