主要内容

创建动态表

一个动态表的大小之前你不知道你的报告生成器程序运行,所以你不能硬编码它的大小。这个例子展示了两种方法来创建一个动态表。一种方法从基本表对象创建一个表。另一种方法使用一个表构造函数创建一个表直接从构造函数的输入。

创建动态表的表对象

这个程序演示了如何创建一个表通过循环并创建基本表对象:对象表,表条目,表行。测试结果的代码显示一个表,第一列是测试的名称,第二个,测试时间,第三,彩色编码的结果。

绿色文本,通过,结果表明在第一和第三行,红色文本,失败,其他两行显示这些行中的结果失败。

代码首先决定了表标题行文本和表列的数量从数据结构。然后创建一个正式的表对象,并指定表的格式。程序然后开始构建表的遍历标题文本条目,创建表条目,并添加表条目来创建表标题行。然后,代码遍历数据并创建一个表行和表条目。它构建表的每个表条目可以通过添加表行,然后将每个表行添加到表中。

进口mlreportgen.report。*进口mlreportgen.dom。*rpt =报告(“检测结果”,“pdf”);%的输入数据testData =结构(“名字”,{“测试1”,《测试2》,“测试3”,“测试4”},“时间”,{1.25,1.43,1.51,2.17},“结果”,{“通过”,“失败”,“通过”,“失败”});%行标题名称和数量的列字段=字段名(testData);nFields =元素个数(领域);%表、行和表条目格式表= FormalTable ();表。RowSep =“固体”;表。ColSep =“固体”;表。边境=“固体”;表。TableEntriesInnerMargin =“5 px”;table.Header。风格={大胆()};%表标题行headRow = TableRow ();k = 1: nFields append (headRow TableEntry(字段{k}));结束追加(table.Header headRow);%表行和表条目data = = TableRow testData行();j = 1: nFields x =字符串(数据。(字段{j}));p =段(x);如果x = =“通过”p。颜色=“绿色”;elseifx = =“失败”p。颜色=“红色”;结束new_entry = TableEntry (p);追加(行,new_entry);结束追加(表、行);结束添加(rpt,表);关闭(rpt);rptview (rpt);

创建动态表用表的构造函数

这个程序演示了如何创建一个表使用的输入表的构造函数。以这种方式创建表的优点是,你不需要通过遍历数据构建表创建表条目和行对象。在本例中,输入数据,指定表的内容单元阵列。这个代码显示了一个相同的测试结果见表创建动态表的表对象

首先判断代码的行数和列在表的单元阵列和预分配内存。执行两个可选的步骤,然后代码格式表的内容,将数据值转换为字符串来指定数据的小数点后的数量,并遍历数据设置结果列的颜色。最后,它创建了一个正式的表直接从输入:文本和表格标题行表数据的单元阵列,然后格式表。

进口mlreportgen.report。*进口mlreportgen.dom。*rpt =报告(“testResults_cell”,“pdf”);testData_raw = {“测试1”,1.25,“通过”;《测试2》,1.43,“失败”;“测试3”,1.51,“通过”;“测试4”,2.17,“失败”};%获得单元阵列的大小[nrows, ncols] =大小(testData_raw);% Preallocate内存单元阵列testData {nrows, ncols} = [];%控制数量的所有值转换为字符串%显示小数点后testData = testData_raw;idx = cellfun (@isnumeric testData_raw (:));testData (idx) = cellfun (@ (x) {sprintf (“% .2f”,x)}, testData_raw (idx));%设置颜色的结果列文本条目我= 1:nrowsj = 1: ncols d =字符串(testData (i, j));p =段(d);如果d = =“通过”p。颜色=“绿色”;elseifd = =“失败”p。颜色=“红色”;结束testData (i, j) = {p};结束结束%创建和格式表表= FormalTable ({“名字”,“时间”,“结果”},testData);表。RowSep =“固体”;表。ColSep =“固体”;表。边境=“固体”;表。TableEntriesInnerMargin =“5 px”;table.Header。风格={大胆()};添加(rpt,表);关闭(rpt);rptview (rpt);

另请参阅

||||

相关的话题