跨越一个表行和列条目
这些例子展示了如何做一个表条目行和列。
非正式的表
这个例子展示了如何使用DOM非正式的表中的行和列生成对象创建下面的表。
一个非正式的表是一个表,不包括预定义的头部,身体,和脚的部分。然而,您可以格式化前几排的一个非正式的表像这个例子展示了一个头。
进口DOM包所以你不必使用长,完全限定类名。
进口mlreportgen.dom。*
设置文档和添加一个标题来描述表。
%创建一个PDF报告,输出类型由“多克斯”改为“PDF”。%创建一个HTML报告,“多克斯”更改为“HTML”或“HTML文件”%多文件或单个文件报告,分别。rpt =文档(“myReport”,“多克斯”);h =标题(1,的多个行和列表条目使用非正式表”);h。风格= [h。风格{HAlign (“中心”)});追加(rpt, h);
创建单元格数组使用的风格是不同的文档组件。包含表跨页面的宽度,实线分离的条目。主要的头是钢蓝色,然后分联箱是一个更轻的天蓝色。
tableStyle ={宽度(“100%”),边界(“固体”),ColSep (“固体”),RowSep (“固体”)};mainHeaderRowStyle = {VAlign (“中间”),InnerMargin (“2 pt”,“2 pt”,“2 pt”,“2 pt”),…写成BackgroundColor (“钢蓝色的”)};mainHeaderTextStyle ={大胆,OuterMargin (“0 pt”,“0 pt”,“0 pt”,“0 pt”),FontFamily (“天线”)};subHeaderRowStyle = {VAlign (“中间”),InnerMargin (“2 pt”,“2 pt”,“2 pt”,“2 pt”),写成BackgroundColor (天蓝色的)};subHeaderTextStyle ={大胆,OuterMargin (“0 pt”,“0 pt”,“0 pt”,“0 pt”),FontFamily (“天线”)};bodyStyle = {OuterMargin (“0 pt”,“0 pt”,“0 pt”,“0 pt”),InnerMargin (“2 pt”,“2 pt”,“2 pt”,“0 pt”)};
创建一些表中的示例数据包括。然后,创建表对象。
data = {“约翰。”,“史密斯”,纳蒂克,妈的;“简”,“母鹿”,“波士顿”};t =表(3);t。风格= [t。风格tableStyle];
创建一个TableRow对象表的第一行包含头文件的名称和地址。标题有两个的子标题名称,所以它横跨两列。这是设置与ColSpan属性表的条目。地址的标题没有任何的子标题,所以它横跨两行。这是设置的行宽属性表的条目。
r = TableRow;r。风格= [r。风格mainHeaderRowStyle];p =段(“名字”);p。风格= [p。风格mainHeaderTextStyle {HAlign (“中心”)});te = TableEntry (p);te。ColSpan = 2;追加(r, te);p =段(“地址”);p。风格= [p。风格mainHeaderTextStyle];te = TableEntry (p);te。行宽= 2;追加(r, te);追加(t, r);
创建一个表中的第二行第一个和最后一个的子标题的名字。尽管表三列宽,第二行只包含两个条目,因为地址字段跨越两个第一和第二行。
r = TableRow;r。风格= [r。风格subHeaderRowStyle];p =段(“第一”);p。风格= [p。风格subHeaderTextStyle];te = TableEntry (p);追加(r, te);p =段(“最后一次”);p。风格= [p。风格subHeaderTextStyle];te = TableEntry (p);追加(r, te);追加(t, r);
循环的示例数据添加到表中。
为k = 1:尺寸(数据,1)r = TableRow;r。风格= [r。风格bodyStyle];te = TableEntry(数据{k, 1});追加(r, te);te = TableEntry(数据{k, 2});追加(r, te);te = TableEntry(数据{k, 3});追加(r, te); append(t, r);结束
将表添加到文档中。
追加(rpt, t);
正式的表格
这个例子展示了如何使用DOM正式表中的行和列生成对象创建下面的表。
一个正式的表是一个表,包含三个子表的头,身体,和表的页脚部分,分别。使用正式的表,而不是一个非正式的表分离头,这需要特殊格式,从数据,可以直接传递到正式表身体构造函数来填充表。
进口DOM包所以你不必使用长,完全限定类名。
进口mlreportgen.dom。*
在现有的文档移动到一个新的页面,并添加一个标题来描述表。
br = PageBreak ();追加(rpt, br);h =标题(1,的多个表条目使用正式表的行和列);h。风格= [h。风格{HAlign (“中心”)});追加(rpt, h);
创建单元格数组使用的风格是不同的文档组件。包含表跨页面的宽度,实线分离的条目。主要的头是钢蓝色,然后分联箱是一个更轻的天蓝色。
tableStyle ={宽度(“100%”),边界(“固体”),ColSep (“固体”),RowSep (“固体”)};mainHeaderRowStyle = {VAlign (“中间”),InnerMargin (“2 pt”,“2 pt”,“2 pt”,“2 pt”),…写成BackgroundColor (“钢蓝色的”)};mainHeaderTextStyle ={大胆,OuterMargin (“0 pt”,“0 pt”,“0 pt”,“0 pt”),FontFamily (“天线”)};subHeaderRowStyle = {VAlign (“中间”),InnerMargin (“2 pt”,“2 pt”,“2 pt”,“2 pt”),写成BackgroundColor (天蓝色的)};subHeaderTextStyle ={大胆,OuterMargin (“0 pt”,“0 pt”,“0 pt”,“0 pt”),FontFamily (“天线”)};bodyStyle = {OuterMargin (“0 pt”,“0 pt”,“0 pt”,“0 pt”)};
创建一些表中的示例数据包括。然后,创建一个FormalTable对象在身体部分样本数据。
data = {“约翰。”,“史密斯”,纳蒂克,妈的;“简”,“母鹿”,“波士顿”};t = FormalTable(数据);t。风格= [t。风格tableStyle];t.Body。(t.Body TableEntriesStyle =。TableEntriesStyle bodyStyle);
构造的头表FormalTable对象使用相同的方法与前面的例子。创建一个TableRow对象表的第一行包含头文件的名称和地址。标题有两个的子标题名称,所以它横跨两列。这是设置与ColSpan属性表的条目。地址的标题没有任何的子标题,所以它横跨两行。这是设置的行宽属性表的条目。
r = TableRow;r。风格= [r。风格mainHeaderRowStyle];p =段(“名字”);p。风格= [p。风格mainHeaderTextStyle {HAlign (“中心”)});te = TableEntry (p);te。= (te风格。风格mainHeaderTextStyle];te。ColSpan = 2;追加(r, te);p =段(“地址”);p。风格= [p。风格mainHeaderTextStyle];te = TableEntry (p);te。= (te风格。风格mainHeaderTextStyle];te。行宽= 2; append(r, te); append(t.Header, r);
创建一个表中的第二行第一个和最后一个的子标题的名字。尽管表三列宽,第二行只包含两个条目,因为地址字段跨越两个第一和第二行。
r = TableRow;r。风格= [r。风格subHeaderRowStyle];p =段(“第一”);p。风格= [p。风格subHeaderTextStyle];te = TableEntry (p);追加(r, te);p =段(“最后一次”);p。风格= [p。风格subHeaderTextStyle];te = TableEntry (p);追加(r, te);附加(t。头,r);
将表添加到文档中。
追加(rpt, t);
页面布局表
这个例子展示了如何使用行和列生成创建一个看不见的页面布局表为一个复杂的布局。
进口DOM包所以你不必使用长,完全限定类名。
进口mlreportgen.dom。*
在现有的文档移动到一个新的页面,并添加一个标题来描述表。
br = PageBreak ();追加(rpt, br);h =标题(1,“多列隐形表”);h。风格= [h。风格{HAlign (“中心”)});追加(rpt, h);
确定页面上的不同组件的样式。主表是无形的,所以它没有边界或分隔符。
mainTableStyle ={宽度(“100%”),边界(“没有”)ColSep (“没有”),RowSep (“没有”)};dataTableStyle ={边界(“固体”),ColSep (“点”),RowSep (“固体”),…OuterMargin (“0 pt”,“0 pt”,“0 pt”,“0 pt”)};dataTableEntriesStyle = {OuterMargin (“0 pt”,“0 pt”,“0 pt”,“0 pt”),VAlign (“中间”)};histStyle = {InnerMargin (“2 pt”,“2 pt”,“2 pt”,“2 pt”),…HAlign (“中心”),VAlign (“底”),宽度(“5”)、高(“4”)};
创建示例数据代表500个随机抛硬币。然后,FormalTable创建文本和图像对象来显示的信息数据。
randi coinflips =(2,[10] 500年);numHeads = (coinflips-1, 2)之和;([p =文本”下面的图显示了从500年试验结果是一枚硬币翻十倍,“,…和硬币落在头上的次数计算。”,…前20的表显示结果试验。”]);dataHeader = {“审判”,“头”};dataBody = [(1:20) ', numHeads (1:20)];dataTable = FormalTable (dataHeader dataBody);数据表。TableEntriesStyle =[数据表。TableEntriesStyle dataTableEntriesStyle];dataTable.Header。= [dataTable.Header风格。风格{大胆}];数据表。= [dataTable风格。Style dataTableStyle]; histogram(numHeads); title(“结果”)包含(头的数量)ylabel (试验的数量)saveas (gcf“histogram_img.png”);关闭(gcf) h =图像(“histogram_img.png”);
创建无形的表,开始添加组件。添加数据表第一行并指定它横跨两行。
t =表(2);t。风格= [t。风格mainTableStyle];第一行= TableRow;第一行。风格=(第一行。风格{宽度(“100%”)});entry1 = TableEntry;追加(entry1 dataTable);entry1。行宽= 2;entry1。= [entry1风格。风格{宽度(“40%”)});追加(第一行,entry1);
添加文本对象第一行,然后附加表的行。
entry2 = TableEntry (p);entry2。= [entry2风格。风格{宽度(“60%”)});追加(第一行,entry2);追加(t,第一行);
创建一个新行,添加图像直方图作为唯一的条目。数据表已经填满第一列的第一行和第二行,所以直方图将放置在第二列。
row2 = TableRow;entry3 = TableEntry;h。风格= [h。风格histStyle];追加(entry3 h);追加(row2 entry3);entry3。= [entry3风格。风格{宽度(“60%”)});追加(t, row2);
生成和显示报告。
追加(rpt, t);关闭(rpt);rptview (rpt);