主要内容

数字部分标题,表标题,和图标题编程

这个例子展示了如何以编程方式为章节创建编号的标题,以及如何为章节中的子节创建分层编号的标题。该示例还演示了如何创建分层编号的表标题和图标题,它们驻留在编号的章节或章节中的子小节中。

导入DOM API包,这样就不必使用长且完全限定的类名。

进口mlreportgen.dom。*

创建并打开一个文档。若要创建Word文档,请将输出类型更改为pdf多克斯.要创建HTML文档,请更改pdf超文本标记语言html文件分别用于多文件或单文件文档。

d =文件(“mydoc”“pdf”);开放(d);

在文件后面附加一个目录。

追加(d, TOC);

为章节标题、分段标题、图表标题和表格标题创建编号流。默认情况下,流是使用初始值为的阿拉伯数字创建的0

chapterStream = createAutoNumberStream(d,“章”);sectionStream = createAutoNumberStream(d,“节”);figureStream = createAutoNumberStream(d,“图”);tableStream = createAutoNumberStream(d,“表”);

定义一些图像、表和表项样式,这些样式将在后面的部分中使用。

imageStyle =......高度(“5”),...宽度(“5”...};tableStyle =......宽度(“100%”),...边界(“固体”),...RowSep (“固体”),...ColSep (“固体”...};tableEntriesStyle =......HAlign (“中心”),...VAlign (“中间”...};

下面的代码创建文档中的第一章。方法创建章节标题getChapterTitle函数。此函数使用编号流来创建一个编号的章节标题。该章节由两个子部分组成,它们的标题是使用getSectionTitle函数。此函数同时使用而且部分编号流以创建分层编号的节标题。子节由多个具有分层编号标题的图形组成,这些标题是使用getFigureCaption函数。此函数同时使用而且数字编号流以创建分层编号的图形标题。的getChapterTitlegetSectionTitle,getFigureCaption本例后面将描述用于创建本章的函数。

第一章。chapterTitle = getChapterTitle(附有编号标题的数字);追加(d, chapterTitle);第1.1节。sectionTitle = getSectionTitle(“陆地及海洋数字”);追加(d, sectionTitle);图1.1。image1 =图像(其中(“landOcean.jpg”));image1。风格=imageStyle; append(d,image1); append(d,getFigureCaption(“土地海洋”));1.2节。sectionTitle = getSectionTitle(《辣椒和猫眼星云图》);追加(d, sectionTitle);图1.2. %image2 =图像(其中(“peppers.png”));image2。风格=imageStyle; append(d,image2); append(d,getFigureCaption(“辣椒”));图1.3. %image3 =图像(其中(“ngc6543a.jpg”));image3。风格=imageStyle; append(d,image3); append(d,getFigureCaption(猫眼星云或ngc6543));

下面的代码创建文档中的第二章。该章节有一个编号的标题和两个分层编号的子节。在这里,子节由多个具有分层编号标题的表组成,这些表是使用getTableTitle函数,在本例后面定义。此函数同时使用而且表格编号流以创建分层编号的表标题。

第二章。chapterTitle = getChapterTitle(“有编号标题的表格”);追加(d, chapterTitle);2.1节。sectionTitle = getSectionTitle(魔法桌(5));追加(d, sectionTitle);表2.1. %追加(d, getTableTitle (“魔(5)”));table1 = Table(magic(5));表1。风格=表格风格; table1.TableEntriesStyle = tableEntriesStyle; append(d,table1);2.2节。sectionTitle = getSectionTitle(魔术表(8)和魔术表(10));追加(d, sectionTitle);表2.2. %追加(d, getTableTitle (“魔(8)”));table2 = Table(magic(8));表二。风格=表格风格; table2.TableEntriesStyle = tableEntriesStyle; append(d,table2);表2.3. %追加(d, getTableTitle (“魔(10)”));table3 = Table(magic(10));table3。风格=表格风格; table3.TableEntriesStyle = tableEntriesStyle; append(d,table3);

关闭并查看文档。

关闭(d);rptview (d);

下面的函数返回章节的编号标题。编号的标题是使用DOM创建的Heading1对象,其中标题内容以字符串作为前缀N章一个周期,其中N流计数器。例如,第一章的标题包含“chapter 1.”作为前缀。的CounterInc格式风格属性导致当此章节标题附加到文档时,将递增的流计数器。的CounterReset格式风格属性导致其他相关流计数器,例如:部分数字,表格,当此章节标题附加到文档时,将重置为它们的初始值。

函数chapterTitle = getChapterTitle(content) importmlreportgen.dom。*chapterTitle = Heading1();追加(chapterTitle文本(“章”));追加(chapterTitle AutoNumber (“章”));追加(chapterTitle文本(“。”));追加(chapterTitle、文本(内容));chapterTitle。风格=......CounterInc (“章”),...CounterReset (“截面图表”),...空白(“保存”),...PageBreakBefore(真正的),...KeepWithNext(真正的)...};结束

下面的函数为章节中的节返回一个分层编号的标题。使用DOM创建分层编号的标题Heading2对象,其中标题内容以字符串“N.M.”为前缀,其中N和M是而且部分流计数器。例如,第二章第一节的标题包含“2.1”作为前缀。的CounterInc格式风格属性导致部分当此节标题附加到文档时,将递增的流计数器。

函数sectionTitle = getSectionTitle(content) importmlreportgen.dom。*sectionTitle = Heading2();追加(sectionTitle AutoNumber (“章”));追加(sectionTitle文本(“。”));追加(sectionTitle AutoNumber (“节”));追加(sectionTitle文本(“。”));追加(sectionTitle、文本(内容));sectionTitle。风格=......CounterInc (“节”),...空白(“保存”),...KeepWithNext(真正的)...};结束

下面的函数为添加到章节或章节中的小节的图形返回一个分层编号的标题。分层编号的标题是使用DOM创建的对象,其中标题内容以字符串“Figure N.F.”作为前缀,其中N和F是而且数字流计数器。例如,第二章第三个图的标题包含“图2.3.”作为其前缀。的CounterInc格式风格属性导致数字当此图形标题附加到文档时,将递增的流计数器。

函数figureCaption = getFigureCaption(内容)导入mlreportgen.dom。*figureCaption =段落();追加(figureCaption文本(“图”));追加(figureCaption AutoNumber (“章”));追加(figureCaption文本(“。”));追加(figureCaption AutoNumber (“图”));追加(figureCaption文本(“。”));追加(figureCaption、文本(内容));keepWithPrevious = FOProperty(“keep-with-previous.within-page”“一直”);figureCaption。风格=......CounterInc (“图”),...空白(“保存”),...FOProperties (keepWithPrevious)...};结束

下面的函数为添加到章节或章节中的子节的表返回一个分层编号的标题。使用DOM创建分层编号的标题对象,其中标题内容以字符串“Table N.T.”为前缀,其中N而且T而且表格流计数器。例如,第二章第三个表的标题包含“table 2.3.”作为前缀。的CounterInc格式风格属性导致表格当此表标题附加到文档时,将递增的流计数器。

函数tableTitle = getTableTitle(内容)导入mlreportgen.dom。*tableTitle =段落();追加(tableTitle文本(“表”));追加(tableTitle AutoNumber (“章”));追加(tableTitle文本(“。”));追加(tableTitle AutoNumber (“表”));追加(tableTitle文本(“。”));追加(tableTitle、文本(内容));tableTitle。风格=......CounterInc (“表”),...空白(“保存”),...KeepWithNext(真正的),...大胆的(真正的),...OuterMargin (“0 pt”“0 pt”“10 pt”“5 pt”...};结束