Можно автоматически пронумеровать содержимое документа, такое как глава, раздел, таблица, и изобразить заголовки. Добавьте автоматические объекты нумерации к документу, где вы хотите, чтобы числа появились. Каждый автоматический номер сопоставлен с потоком нумерации, который определяет значение каждого номера в последовательности. Сообщите, что генерация заменяет автоматический объект нумерации на номер на основе его положения в документе относительно других автоматических чисел в том же потоке. Например, первый автоматический объект нумерации в потоке заменяется 1, второе с 2, и так далее. Можно использовать автоматическую нумерацию, чтобы создать иерархические схемы нумерации, такие как Раздел 1.1 и Раздел 1.2.
Можно автоматически пронумеровать содержимое документа программно или путем определения автоматических номеров в шаблоне.
К автоматически содержимому документа номера программно, сделайте следующее в каждой точке в документе, где вы хотите, чтобы появился автоматически сгенерированный номер.
Создайте автоматический объект нумерации, с помощью mlreportgen.dom.AutoNumber конструктор. Задайте имя связанного автоматического потока нумерации в конструкторе. Например, эта линия создает автоматический номер, принадлежащий потоку под названием chapter.
chapterNumber = AutoNumber('chapter');Если заданный автоматический поток нумерации не существует, AutoNumber конструктор создает поток нумерации, имеющий указанное имя. Неявно созданный поток представляет автоматические числа как арабские цифры. Чтобы использовать поток с различными свойствами, создайте поток явным образом, с помощью createAutoNumberStream функция Document объект.
Добавьте AutoNumber к Text, Paragraph, или Heading объект, который содержит текст, который предшествует автоматическому номеру.
append(chapHead,chapterNumber);
Добавьте mlreportgen.dom.CounterInc объект формата к Style свойство объекта содержания, который вы хотите автоматически пронумеровать. Добавление CounterInc возразите постепенно увеличивает поток, сопоставленный с автоматическим номером, когда абзац или заголовок выводятся. Обновленное значение заменяет AutoNumber объект.
chapHead.Style = {CounterInc('chapter'), WhiteSpace('preserve')};Этот код автоматически нумерует заголовки главы в документе.
import mlreportgen.dom.*; d = Document('MyReport','html'); for rank = 3:5 chapHead = Heading1('Chapter ','Heading 1'); append(chapHead,AutoNumber('chapter')); append(chapHead,sprintf('. Rank %i Magic Square',rank)); chapHead.Style = {CounterInc('chapter'), ... WhiteSpace('preserve')}; append(d,chapHead); table = append(d,magic(rank)); table.Width = '2in'; end close(d); rptview(d.OutputPath);
Можно создать иерархические схемы нумерации, такой как 1,1, 1.2, 1.3, 2.1, и 2.2. Используйте mlreportgen.dom.CounterReset объект формата, чтобы сбросить дочерний автоматический номер к его начальному значению, когда его родительский номер изменяется. Например, этот код использует CounterReset объект формата, чтобы сбросить табличный поток номера главы в начале каждой главы.
import mlreportgen.dom.*; d = Document('MyReport','html'); for rank = 3:2:9 chapHead = Heading(1,'Chapter '); append(chapHead, AutoNumber('chapter')); chapHead.Style = {CounterInc('chapter'), ... CounterReset('table'), ... WhiteSpace('preserve')}; append(d,chapHead); for i = 0:1; tableHead = Paragraph('Table '); append(tableHead,AutoNumber('chapter')) append(tableHead,'.'); append(tableHead, AutoNumber('table')); append(tableHead, ... sprintf('. Rank %i Magic Square',rank+i)); tableHead.Style = {CounterInc('table'), ... Bold, ... FontSize('11pt'), ... WhiteSpace('preserve')}; append(d,tableHead); table = append(d,magic(rank+i)); table.Width = '2in'; end end close(d); rptview(d.OutputPath);
Можно автоматически пронумеровать документ путем создания части документа, основанной на объектах на шаблонах, содержащих Microsoft® Word, HTML или PDF автоматическая нумерация и неоднократно добавление частей к документу.
Предположим, что вы добавляете шаблон Chapter части главы к библиотеке шаблонов части Word MyReportTemplate.dotx сообщите о шаблоне. Этот шаблон использует последовательность Word (SEQ) поле, чтобы пронумеровать заголовок главы. Шаблон также содержит отверстия для заголовка главы и содержимого главы.

Этот код использует шаблон части главы, чтобы создать пронумерованные главы. Последний оператор в этом коде открывает отчет в Word и обновляет его. Обновление отчета заставляет Word заменять SEQ поля с числами главы.
import mlreportgen.dom.* doctype = 'docx'; d = Document('MyReport',doctype,'MyReportTemplate'); for rank = 3:5 chapterPart = DocumentPart(d,'Chapter'); while ~strcmp(chapterPart.CurrentHoleId,'#end#') switch chapterPart.CurrentHoleId case 'ChapterTitle' append(chapterPart, ... sprintf('Rank %i Magic Square',rank)); case 'ChapterContent' table = append(chapterPart,magic(rank)); table.Width = '2in'; end moveToNextHole(chapterPart); end append(d, chapterPart); end close(d); rptview(d.OutputPath);
Чтобы создать автоматическую нумерацию в отчетах HTML, создайте часть документа, которая использует counter-increment свойство, и задает счетчик в таблице стилей. Например, чтобы создать часть документа, чтобы работать с той же программой, используемой в Автоматической Нумерации в Word Reports, создайте шаблон части документа в своей библиотеке документа HTML, похожей на этот код. Код задает chapter возразите и задает класс an_chapter содержать автоматический номер. Это также задает отверстия для заголовка и для содержимого, чтобы работать с программой.
<dptemplate name="Chapter"> <p style="counter-increment:chapter;"><span>Chapter </span> <span class="an_chapter"></span> <hole id="ChapterTitle" /></p> <hole id="ChapterContent" /> </dptemplate>
В таблице стилей задайте an_chapter класс. Используйте content свойство задать chapter возразите как содержимое.
span.an_chapter:before {
content: counter(chapter);
}
Используйте ту же программу, как вы использовали в Word, изменяя значение для doctype к 'html'.
Создание автоматических чисел для PDF похоже на HTML, кроме API DOM предоставляет элементу HTML <autonumber> для шаблонов PDF, который упрощает автоматическую нумерацию. Задайте stream-name припишите для autonumber элемент. Для потокового имени используйте значение counter-increment свойство, в этом случае chapter.
<dptemplate name="Chapter"> <p style="counter-increment:chapter;"><span>Chapter </span> <autonumber stream-name="chapter"/> <hole id="ChapterTitle" /></p> <hole id="ChapterContent" /> </dptemplate>
Вы не должны добавлять свойства в таблице стилей, чтобы использовать автоматический номер.
Используйте ту же программу, которую вы использовали в Word, изменяя значение для doctype к 'pdf'.