这个例子展示了如何使用报表资源管理器创建基本报表。本报告解释并说明了魔方——矩阵的列、行和对角线加起来都是相同的数(请参阅魔法
MATLAB中的函数引用®文档)。
要创建此报告,您需要执行以下主要任务:
请注意
本例不需要熟悉MATLAB软件。但是,MATLAB知识有助于理解生成报告期间执行的MATLAB代码。
这个例子包含不同类型的报表创建和生成任务的单独部分。每一节都建立在前一节的基础上。但是,如果你想在没有完成前面的部分的情况下完成后面的部分,你可以查看完整的报告设置文件:魔方报告
.
要设置魔方报告,首先创建一个设置文件来存储设置。然后将MATLAB对象(称为组件)添加到设置中,以指定报告内容。
创建报表设置文件:
启动MATLAB软件会话。
打开报表资源管理器。从MATLAB工具条,在应用程序选项卡,在数据库连接和报告部分中,点击报告生成器.
选择文件>新创建报表设置文件。新的报表设置具有默认名称Unnamed.rpt
.
在右侧的属性窗格中:
若要将报表保存在当前工作文件夹中,请选择当前工作目录
从目录列表。
集文件格式来HTML (from template)
以HTML格式生成报告输出。使用(模板)
选项以可展开和折叠的格式创建报表内容表。
在报告描述文本框中,将现有文本替换为以下文本。
该报告创建了一系列魔术方块,并将它们显示为图像。魔方是一个矩阵,其中的列、行和对角线加起来都是相同的数。
请注意
当您更改属性窗格字段时,其背景颜色也会更改。这表明对该字段有未应用的更改。只要你对另一个组件执行任何操作,MATLAB报表生成器应用这些更改,背景颜色再次变成白色。
保存您的报告。选择文件>另存为并命名您的报告设置文件magic_squares.rpt
.
新文件名出现在Outline窗格中。
要创建报告的内容,请参见使用组件添加报表内容.
报表组件指定要包含在报表中的信息。下图显示了本例中创建的报表的示例页面,突出显示了用于生成报表的组件。
魔方报告使用MATLAB工作区中定义的变量来指定要显示的正方形的数量和大小,以及是否将这些变量显示为数字表或彩色编码的正方形图像:
的magicSizeVector变量指定魔方大小的数组
largestDisplayedArray变量指定要显示为数字数组的最大魔术方块的大小
您可以要求用户在运行报表之前在MATLAB工作区中创建这些变量。方法来创建变量,这是一个更好的解决方案求MATLAB表达式
组件。
使用求MATLAB表达式组件来定义报表变量:
在左侧的Outline窗格中,选择报表设置的根组件。
在中间的“图书馆”窗格中MATLAB中,选择求MATLAB表达式.
在右侧的“属性”窗格中,单击旁边的图标向当前报告添加组件要插入求MATLAB表达式组件添加到报告中。
只有在将组件添加到报表后,您才能在Properties窗格中编辑组件信息。
在“大纲”窗格中Eval
组件显示在magic_squares
报告。
的左上角的图标Eval
Component表示该组件不能有子组件。属性添加的任何组件默认情况下Eval
所选组件是该组件的兄弟组件。
的选项求MATLAB表达式组件显示在“属性”窗格中。
若要排除本报告中的MATLAB代码细节及其输出,请清除在报告中插入MATLAB表达式而且在报告中显示命令窗口输出复选框。
在要在基本工作区中求值的表达式文本框,将现有文本替换为以下MATLAB代码。
提示
将此文本从HTML文档复制并粘贴到报表资源管理器中。
这段MATLAB代码设置了两个变量,用来定义报表的运行方式。%magicSizeVector是要插入到%报表中的MxM %Magic Square大小的列表。注意,magic %squares不能是2x2。magicSizeVector=[4 8 16 32];%largestDisplayedArray设置数组大小的%限制,该数组大小将通过%Insert Variable组件插入到报告中。largestDisplayedArray = 15;
在如果有错误,则计算此表达式文本框中,将现有文本替换为以下文本。
disp([' eval: ', evalException.message])
这将导致在MATLAB代码失败时显示错误。
提示
若要立即执行这些命令,请在报表资源管理器的右上角单击Eval现在按钮。这将确认您的命令是正确的,以减少报告生成问题的机会。
保存报告..
要为报表创建标题页,请使用标题页组件。
在左侧的Outline窗格中,选择Eval
组件。
在中间的选项窗格中格式化,添加标题页组件。
因为Eval
组件图标表示该组件不能有子组件标题页组件是Eval
组件。同样,标题页组件不能有子组件。
请注意
使用标题页组件时,您的报告需要一个章组件。您还没有添加章组件,因此“属性”窗格将显示一条消息,指示需要某个章节标题页组件正确显示。因为在这个例子后面你会添加章组件,您可以忽略该消息。
在右侧的“属性”窗格中,使用主要选项卡,输入标题页信息。
在标题文本框,输入魔术方块
.
在副标题文本框,输入列、行、对角线:人人平等
.
下选项,选择定制的作者
从名单上。
在球场的右边定制的作者字段中,输入Albrecht Durer
.
Albrecht Dürer创作了一幅蚀刻画,其中包含一个魔方。你的期末报告包括那幅蚀刻画的图片。
选择包括版权所有者和年份复选框。
在下一个文本框中输入的MathWorks
.
在第二个文本框中输入1988
.
在“属性”窗格中摘要选项卡中,输入:
介绍魔方及其含义。
保存报告。
方法向报告中添加章节章/节组件。
在左侧的Outline窗格中,选择标题页组件。
在中间的“图书馆”窗格中格式化,添加章/节组件。
的Eval
,标题页,章组件都是报表顶层的子组件,彼此是兄弟姐妹。
对于自定义章节标题,在右侧的“属性”窗格中输入魔方解释
.
大纲窗格显示章节标题。
保存报告。
在第一章中添加介绍性文本段而且文本组件。
在左侧的Outline窗格中,选择章组件。
在中间的“图书馆”窗格中格式化,添加段组件。
的子组件显示在Outline窗格中章组件。
默认情况下,段组件从它的子组件继承它的文本。添加两个文本组件。
请注意
的文本组件必须具有段组件作为其父组件。
在“库”窗格中格式化类别,加两个文本大纲的组件。
在Outline窗格中,选择第一个文本
组件。
在报告中要包含的文本文本框,输入% <帮助(‘魔法’)>
.
的%
符号和尖括号<>
指示给MATLAB报表生成器软件说明这是MATLAB代码来评估的。命令帮助(‘魔法’)
显示有关MATLAB的信息魔法
函数。
在Outline窗格中,选择第二个文本
组件。
在报告中要包含的文本文本框,输入此文本。
德国艺术家阿尔布雷希特·丢勒(1471-1528)创作了许多具有宗教和科学象征意义的木刻和版画。他最著名的作品之一《忧郁症I》探讨了反对灵感和表达的抑郁状态。文艺复兴时期的占星家认为,木星魔方(如图右上方所示)可以帮助治疗忧郁。雕刻的日期(1514年)可以在广场的下面一排数字中找到。
保存报告。
第一章的内容现在已经完成了。
创建Albrecht Dürer的图像,并将其包含在报告中。
在左侧的Outline窗格中,选择章组件。
在中间的“图书馆”窗格中MATLAB,添加求MATLAB表达式组件。
移动Eval的组件段组件,以便图像跟随介绍文本。要移动它,请在工具栏上单击下来箭头。
与Eval
组件,设置这些属性:
清除在报告中插入MATLAB表达式而且在报告中显示命令窗口输出复选框。您不希望在报告中包含代码或其输出。
在要在基本工作区中求值的表达式文本框,将现有文本替换为此MATLAB代码。
这是德国艺术家Albrecht Durer的自画像。在图像的右上角有一个魔术方块。durerData =负载(“durer.mat”、“垫”);图(“单位”,“像素”,…'Position',[200 200 size(durerData.X,2)*.]5大小(durerData.X 1) *。5);图像(durerData.X);colormap (durerData.map);轴('图像');集(gca,…“Xtick”,[],… 'Ytick',[],... 'Units','normal',... 'Position',[0 0 1 1]); clear durerData
此MATLAB代码在MATLAB图形窗口中显示Dürer蚀刻。
在如果有错误,则计算此表达式文本框,将现有文本替换为以下文本:
disp([' eval: ', evalException.message])
如果加载Dürer蚀刻时发生错误,则执行此代码。
在左侧的Outline窗格中,选择Eval
组件。
在中间的“图书馆”窗格中处理图形,添加图快照组件。
内联图像组件(例如图像或图快照),把它包括在段组件。
在属性窗格中:
在纸方向列表,选择肖像
.
在反转硬拷贝列表中,选择不反
.
选择此选项指定不更改打印时图像的屏幕颜色。
接下来的三个步骤设置报告,以便在将图像添加到报告后从MATLAB工作区中删除图像。
在Outline窗格中,选择图快照组件。
在“库”窗格中MATLAB,添加求MATLAB表达式组件。
在属性窗格中:
清除在报告中插入MATLAB表达式而且在报告中显示命令窗口输出复选框。您不希望在报告中包含代码或其输出。
在要在基本工作区中求值的表达式文本框,将现有文本替换为:
此命令删除Durer映像删除(gcf);
的删除(gcf)
命令删除MATLAB工作区中的当前图像,在本例中为Dürer蚀刻。
在如果有错误,则计算此表达式文本框,将现有文本替换为以下文本:
disp([' eval: ', evalException.message])
如果在删除Dürer蚀刻时发生错误,则执行此代码。
保存报告。
属性指定的每个魔术方块向报告中添加一章magicSizeVector报告变量。你使用For循环
组件来执行此重复任务。要创建魔方及其图像,您需要执行以下任务:
在左侧的Outline窗格中,选择章组件。
在中间的“图书馆”窗格中逻辑和流程控制,添加For循环组件。
这For循环组件出现在章组件。但是,魔方应该在第一章之后处理,所以做出为
组件的兄弟组件章组件,而不是子组件。
在Outline窗格中,选择为
组件。
单击左箭头,使为
组件的兄弟组件章组件。
在右侧的属性窗格中:
在结束文本框,将现有文本替换为以下文本:
长度(magicSizeVector)
这是包含不同大小的魔方矩阵的向量的长度。
在变量名文本框,将现有文本替换为以下文本:
MAGIC_SQUARE_INDEX
这个变量充当循环索引。
保存报告。
为每个正方形创建一个章节章控件的子元素For循环组件。这将导致报表生成器在报表生成期间为for循环的每次迭代创建一个章节。
在左侧的Outline窗格中,选择为
组件。
在中间的“图书馆”窗格中格式化,添加章/节组件添加到报表设置。
的子元素为
组件。
在右侧的Properties窗格中,选择自定义
从标题列出并输入章节标题:
魔方# %
保存报告。
从中提取每个魔方矩阵的大小magicSizeVector
使用一个求MATLAB表达式组件。
在左侧的Outline窗格中,选择底部章组件。
在中间的“图书馆”窗格中MATLAB类别,添加求MATLAB表达式组件添加到报表设置。
在属性窗格中:
清除在报告中插入MATLAB表达式而且在报告中显示命令窗口输出复选框。
在要在基本工作区中求值的表达式文本框,将现有文本替换为:
magic_Square_Size = magicSizeVector (MAGIC_SQUARE_INDEX);
这个命令从第一个中初始化的大小向量中提取魔方的下一个大小Eval
报告的组成部分。的变量magic_Square_Size
表示当前正在处理的魔方的大小。
在如果有错误,则计算此表达式文本框,将现有文本替换为以下文本:
disp([' eval: ', evalException.message])
如果试图从中提取值时发生错误,则执行此代码magicSizeVector
.
保存报告。
方法将魔方的大小插入报表段而且插入变量组件。
在左侧的Outline窗格中,选择底部Eval组件。
在中间的“图书馆”窗格中格式化,添加段组件添加到报表设置。
不要更改属性。包含魔方大小的变量放在这一段中。
在Outline窗格中,选择段组件(在为
组件)。
在“库”窗格中MATLAB,添加插入变量组件导入报表设置。
在右侧的属性窗格中:
在变量名文本框,输入magic_Square_Size
.
从显示为列表中,选择内联文本
.
保存报告。
若要创建魔方并显示相关的矩阵或图像,请使用求MATLAB表达式组件。
在左侧的Outline窗格中,选择底部段组件。
在中间的“图书馆”窗格中MATLAB,添加求MATLAB表达式组件添加到报表设置。
让这求MATLAB表达式组件的兄弟组件段组件。在Outline窗格中,选择Eval组件。单击工具栏上的左箭头。
在右侧的属性窗格中:
清除在报告中插入MATLAB表达式而且在报告中显示命令窗口输出复选框。
在要在基本工作区中求值的表达式文本框,将现有文本替换为此MATLAB代码。
这个MATLAB脚本产生了一个魔法magic_Square_Size大小的%平方%并创建该正方形的图像。mySquare =魔法(magic_Square_Size);clf显示亮度图像(mySquare);标题(sprintf (“魔方N=%i”甘氨胆酸,magic_Square_Size))集(,“Ydir”,“正常”);轴平等的;轴紧;
这段代码创建了一个神奇的方阵mySquare
的大小magic_Square_Size
,并在MATLAB图形窗口中打开该矩阵的图像。
在如果有错误,则计算此表达式文本框,将现有文本替换为以下文本:
disp ([' eval期间出错:', evalException.message])
如果在创建和显示魔方时发生错误,则执行此代码。
保存报告。
使用逻辑如果
,逻辑然后
,其他逻辑
组件来确定是将魔术方块显示为数字数组还是图像。
在左侧的Outline窗格中,选择Eval
组件。
在图书馆面板的中间,下面逻辑和流程控制,双击逻辑如果.
在右侧的“属性”窗格中测试表达式文本框,将现有文本替换为以下文本:
magic_Square_Size < = largestDisplayedArray
此命令测试当前矩阵大小(magic_Square_Size
)小于或等于第一个指定的值Eval
报告的组成部分(largestDisplayedArray = 15
).
处理这个结果逻辑如果组件,创建两个子组件-逻辑然后而且其他逻辑.如果magic_Square_Size
小于或等于15时,矩阵变量将出现在报告中。如果magic_Square_Size
大于15时,矩阵图像出现在报告中。
在Outline窗格上,选择如果
组件。
在“图书馆”窗格的下面逻辑和流程控制,双击其他逻辑.
在Outline窗格上,选择如果
组件。
在“图书馆”窗格的下面逻辑和流程控制,双击逻辑然后.
的然后
组件出现在其他的
组件。
保存报告。
在左侧的Outline窗格中,选择然后
组件。
在中间的“图书馆”窗格中MATLAB,双击插入变量.
在右侧的属性窗格中:
在变量名文本框,输入mySquare
,它是包含指定大小的魔方的变量。
从标题列表中,选择没有一个
.
在数组大小限制文本框,输入0
.
这变量
组件显示魔术方阵,存储在mySquare
变量。
在Outline窗格中,选择其他的
组件。
在“库”窗格中处理图形,双击循环图.
不要改变它的属性。
在Outline窗格中,选择循环图
组件。
在“库”窗格中处理图形,双击图快照.
在属性窗格中:
在论文方向列表中,选择肖像
.
在图像大小列表中,选择自定义
.
下图像大小列表,输入(5 - 4)
自定义图像大小。
在反转硬拷贝列表中,选择反
.
此选项将暗轴颜色更改为浅轴颜色,反之亦然。
Outline窗格如下所示。
保存报告。
控件可以将MATLAB代码添加到报表中求MATLAB表达式组件(也称为Eval
组件)。
的求MATLAB表达式组件对话框包括如果有错误,则计算此表达式复选框。对话框包括您可以使用的默认错误处理代码,或者您可以创建自己的错误处理代码。
如果您不更改默认的错误处理代码,那么当您生成报告时,并且在您添加的MATLAB代码中有一个错误:
如果你清除了如果有错误,则计算此表达式复选框,则生成完整的报告,而不会在MATLAB命令行中显示错误消息。
如果您选择如果有错误,则计算此表达式复选框,则生成完整的报告,并在MATLAB命令行中出现错误消息。
若要在添加的MATLAB代码中出现错误时停止生成报告,请更改以下默认错误处理代码的第二行和第三行,如下所示:
warningMessageLevel = 2;displayWarningMessage = true;failGenerationWithException = false;failGenerationWithoutException = false;
要停止生成报告并显示异常,将默认代码更改为:
displayWarningMessage = false;failGenerationWithException = true;
要停止生成报告而不显示异常,将默认代码更改为:
displayWarningMessage = false;failGenerationWithoutException = true;
如果要替换默认的错误处理代码,请使用evalException.message
变量返回异常的信息。
在本例开始时,您指定了HTML (from template)
作为报告的输出格式。如果您没有这样做,或者如果您在本教程后面打开了完整的报告设置文件,那么现在就设置它。
在工具栏上,单击报告按钮以生成报告。
生成报告时,在“消息列表”窗口中,指定希望“消息列表”窗口显示的详细级别。
在“报表资源管理器大纲”窗格中,报表设置文件的每个组件在执行时会高亮显示。
处理完成后,MATLAB Web浏览器打开并显示HTML文件。
当你选择的时候HTML (from template)
作为输出类型,目录在报告中显示为折叠。通过单击节点上的加号或减号展开或折叠每个节点。新闻Ctrl+点击展开或折叠整个结构(CMD+点击Macintosh平台)。