Main Content

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

通过编程定义样式

此示例显示如何以编程方式定义一组样式。样式是一组命名的格式。样式允许您通过指定样式名称来定义报告元素的外观,而不是定义所有单独的格式。使用样式可以简化报告程序的创建。DOM API 允许您使用在报告模板中定义的样式。或者,如本例所示,您可以在报告程序中定义样式。如果您需要或希望创建不需要模板的报告程序,请考虑在报告程序中定义样式。

在此示例中,您将生成一份报告,其中包含汇总一系列测试结果的表格。该示例创建测试数据。在实际应用程序中,您可以将报告程序实现为一个函数,该函数接受测试数据作为其输入之一。以下是此示例生成的报告:

创建测试数据

将测试数据创建为结构数组。

test(1).Name = "100% Success";
test(1).Description = "Percent of total loss(failing hits) must be==0%";
test(1).Status = "Fail";
test(1).StatusDetail = "Loss=22.33%";

test(2).Name = "No Fail";
test(2).Description = "Fail Count must be ==0";
test(2).Status = "Fail";
test(2).StatusDetail = "Fail Count=69";

test(3).Name = "Fast Hit Rate";
test(3).Description = "Final Throughput must be>=10Hits per second";
test(3).Status = "Pass";
test(3).StatusDetail = "Hits per Second=27.978";

test(4).Name = "Low Execution Time";
test(4).Status = "Pass";
test(4).Description = "Avg. Exe Time(ms) must be <750.0";
test(4).StatusDetail = "Avg Exe Time(ms)=244.33";

导入 DOM API 命名空间

导入 DOM API 命名空间,这样您就不必使用完全限定的类名。

import mlreportgen.dom.*;

创建一个文档

要创建 Microsoft® Word 文档,请将输出类型从 pdf 更改为 docx。要创建 HTML 文档,请将 pdf 更改为 htmlhtml-file

d = Document("report","pdf");

为样式创建容器

创建一个 containers.Map 对象作为样式表,即将样式名称映射到样式包含的格式集的对象。

styles = containers.Map;

定义样式

此示例使用顶级部分标题样式和子部分标题样式。首先,创建一个定义两个标题共同的外观的样式。

styles("baseHeadingPara") = {Color("darkblue"),FontFamily("Arial")};

定义作为顶级报告部分标题的段落的样式。此样式指定大纲级别为 1,以便标题作为报告目录中的顶级条目出现。

styles("heading1Para") = [styles("baseHeadingPara"),{OutlineLevel(1),Bold,...
                          FontSize("16pt")}];                              

定义第二级标题。

styles("heading2Para") = [styles("baseHeadingPara"),{OutlineLevel(2),...
                          OuterMargin("0in","0in","12pt","5pt"),Italic,FontSize("14pt")}];

定义表格、表格标题和表格条目的样式。

styles("testSummaryTable") = {Border("solid"),RowSep("solid"),ColSep("solid"),Width("7in")};                          
styles("testSummaryTableHeader") = {Bold};
styles("testSummaryTableEntry") = {InnerMargin("10pt")};

定义测试状态的样式。

styles("passText") = {Color("green")};
styles("failText") = {Color("red")};

创建报告内容

创建报告标题。

heading1Para = Paragraph("Load Test Information");
heading1Para.Style = styles("heading1Para");
append(d,heading1Para);

创建测试摘要表描述标题。

heading2Para = Paragraph("Quality of Service Report Summary");
heading2Para.Style = styles("heading2Para");
append(d,heading2Para);

创建测试摘要表标题内容。定义在表头中显示的标签。

testSummaryTableHeader = ["Name","Description","Status","Status Detail"];  

创建一个元胞数组来保存测试摘要表的内容。该元胞数组稍后将用于创建表格。

nTests = numel(test);
testSummaryTableBody = cell(nTests,4);

将测试数据的每一项存储在元胞数组的一个单元格中。

for t = 1:nTests
    testSummaryTableBody{t,1} = test(t).Name;
    testSummaryTableBody{t,2} = test(t).Description;
    result = test(t).Status;
    status = Paragraph(result);
     if result == "Pass"
         status.Style = styles("passText");
     else
         status.Style = styles("failText");
     end
       testSummaryTableBody{t,3} = status;
       testSummaryTableBody{t,4} = test(t).StatusDetail;
end

创建测试摘要表。

testSummaryTable = FormalTable(testSummaryTableHeader,testSummaryTableBody);
testSummaryTable.Style = styles("testSummaryTable");
testSummaryTable.Header.Style = styles("testSummaryTableHeader");
testSummaryTable.TableEntriesStyle = styles("testSummaryTableEntry");

将测试摘要表追加到文档中。

append(d,testSummaryTable);

关闭并查看文档

close(d);
rptview(d);

另请参阅

| | | | | | | | | |

相关主题