主要内容

文档内容自动编号

您可以自动编号文档内容,如章、节、表和图形标题。将自动编号对象附加到要显示数字的文档中。每个自动号码都与一个编号流相关联,该编号流确定序列中每个号码的值。报表生成将自动编号对象替换为基于其在文档中相对于同一流中其他自动编号的位置的编号。例如,流中的第一个自动编号对象替换为1,第二个替换为2,依此类推。您可以使用自动编号来创建分级编号方案,例如章节1.1和章节1.2。

您可以通过编程方式或通过在模板中定义自动编号来自动编号文档内容。

自动编号内容编程

若要以编程方式自动为文档内容编号,请在文档中希望显示自动生成编号的每个点执行以下操作。

  1. 属性创建自动编号对象mlreportgen.dom.AutoNumber构造函数。在构造函数中指定关联的自动编号流的名称。例如,这一行创建了一个属于流的自动编号

    chapterNumber =自动编号(“章”);

    请注意

    如果指定的自动编号流不存在,则AutoNumber构造函数创建具有指定名称的编号流。隐式构造的流将自动数字呈现为阿拉伯数字。若要使用具有不同属性的流,请使用createAutoNumberStream函数文档对象。

  2. 附加的AutoNumber到一个文本,或标题对象,该对象包含自动编号前面的文本。

    追加(chapHead chapterNumber);
  3. 追加一个mlreportgen.dom.CounterInc将对象格式化为风格要自动编号的内容对象的属性。附加一个CounterInc对象在输出段落或标题时递增与自动编号关联的流。更新后的值将替换AutoNumber对象。

    chapHead。风格= {CounterInc(“章”),空格(“保存”)};

这段代码自动为文档中的章节标题编号。

进口mlreportgen.dom。*;d =文件(“MyReport”“html”);排名= 3:5 chapHead =头1(“章”“标题1”);追加(chapHead AutoNumber (“章”));追加(chapHead sprintf (”。排名%i魔方',排名));chapHead。风格= {CounterInc(“章”),...空白(“保存”)};追加(d, chapHead);Table = append(d,magic(rank));表格宽度=“2”;结束关闭(d);rptview (d.OutputPath);

创建分级自动编号

您可以创建分级编号方案,例如1.1、1.2、1.3、2.1和2.2。使用一个mlreportgen.dom.CounterReset当子自动编号的父编号发生更改时,将子自动编号重置为其初始值。例如,这段代码使用了CounterReset格式对象在每章开始时重置章表编号流。

进口mlreportgen.dom。*;d =文件(“MyReport”“html”);排名= 3:2:9 chapHead =标题(1,“章”);追加(chapHead AutoNumber (“章”));chapHead。风格= {CounterInc(“章”),...CounterReset (“表”),...空白(“保存”)};追加(d, chapHead);I = 0:1;tableHead =段落(“表”);追加(tableHead AutoNumber (“章”)追加(tableHead“。”);追加(tableHead AutoNumber (“表”));追加(tableHead...sprintf (”。排名%i魔方',等级+ i));tableHead。风格= {CounterInc(“表”),...大胆,...字形大小(“11 pt”),...空白(“保存”)};追加(d, tableHead);Table = append(d,magic(rank+i));表格宽度=“2”;结束结束关闭(d);rptview (d.OutputPath);

使用部件模板自动编号内容

您可以根据包含的模板创建文档部件对象,从而自动为文档编号微软®、HTML或PDF自动编号,并重复将部分附加到文档中。

Word报表中的自动编号

假设您添加了一个章节部分模板到Word的部件模板库MyReportTemplate.dotx报告模板。此模板使用Word序列(SEQ)字段以编号章节标题。模板还包含用于章节标题和章节内容的孔。

这段代码使用章节部分模板来创建编号的章节。这段代码中的最后一条语句在Word中打开报告并更新它。更新报表将导致Word替换SEQ字段的章节编号。

进口mlreportgen.dom。*doctype =“多克斯”;d =文件(“MyReport”doctype,“MyReportTemplate”);chapterPart = DocumentPart(d,“章”);~ strcmp (chapterPart。CurrentHoleId,“# #结束”开关chapterPart。CurrentHoleId情况下“ChapterTitle”追加(chapterPart...sprintf ('Rank %i魔方',排名));情况下“ChapterContent”table = append(chapterPart,magic(rank));表格宽度=“2”;结束moveToNextHole (chapterPart);结束追加(d, chapterPart);结束关闭(d);rptview (d.OutputPath);

在HTML报告中自动编号

要在HTML报告中创建自动编号,请创建使用counter-increment属性,并在样式表中定义计数器。例如,要创建一个文档部件,以便与中使用的相同程序一起工作Word报表中的自动编号,在您的HTML文档库中创建一个类似于此代码的文档部件模板。该代码定义了计数器并指定一个类an_chapter保持自动号码。它还为标题和与程序一起工作的内容定义了漏洞。

< dptemplate name =“章”> 

“counter-increment:章;”>章节 “an_chapter”> “ChapterTitle”/>

“ChapterContent”/ > < / dptemplate >

样式表中定义an_chapter类。使用内容属性指定计数器作为内容。

跨度。An_chapter:before {content: counter(chapter);}

使用与Word相同的程序,更改为的值文档类型“html”

PDF报告中的自动编号

为PDF创建自动编号类似于HTML,只是DOM API提供了一个HTML元素< autonumber >用于简化自动编号的PDF模板。指定流程名属性的autonumber元素。对于流名称,使用a的值counter-increment在这里是属性

< dptemplate name =“章”> 

“counter-increment:章;”>Chapter < auumber stream-name=“章”/> “ChapterTitle”/>

“ChapterContent”/ > < / dptemplate >

使用自动编号不需要在样式表中添加属性。

使用与Word相同的程序,更改for的值文档类型“pdf”

另请参阅

功能