Автоматически содержимое документа номера

Можно автоматически пронумеровать содержимое документа, такое как глава, раздел, таблица, и изобразить заголовки. Добавьте автоматические объекты нумерации к документу, где вы хотите, чтобы числа появились. Каждый автоматический номер сопоставлен с потоком нумерации, который определяет значение каждого номера в последовательности. Сообщите, что генерация заменяет автоматический объект нумерации на номер на основе его положения в документе относительно других автоматических чисел в том же потоке. Например, первый автоматический объект нумерации в потоке заменяется 1, второе с 2, и так далее. Можно использовать автоматическую нумерацию, чтобы создать иерархические схемы нумерации, такие как Раздел 1.1 и Раздел 1.2.

Можно автоматически пронумеровать содержимое документа программно или путем определения автоматических номеров в шаблоне.

Автоматически содержимое номера программно

К автоматически содержимому документа номера программно, сделайте следующее в каждой точке в документе, где вы хотите, чтобы появился автоматически сгенерированный номер.

  1. Создайте автоматический объект нумерации, с помощью mlreportgen.dom.AutoNumber конструктор. Задайте имя связанного автоматического потока нумерации в конструкторе. Например, эта линия создает автоматический номер, принадлежащий потоку под названием chapter.

    chapterNumber = AutoNumber('chapter');

    Примечание

    Если заданный автоматический поток нумерации не существует, AutoNumber конструктор создает поток нумерации, имеющий указанное имя. Неявно созданный поток представляет автоматические числа как арабские цифры. Чтобы использовать поток с различными свойствами, создайте поток явным образом, с помощью createAutoNumberStream функция Document объект.

  2. Добавьте AutoNumber к Text, Paragraph, или Heading объект, который содержит текст, который предшествует автоматическому номеру.

    append(chapHead,chapterNumber);
  3. Добавьте 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 автоматическая нумерация и неоднократно добавление частей к документу.

Автоматическая нумерация в Word Reports

Предположим, что вы добавляете шаблон 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

Чтобы создать автоматическую нумерацию в отчетах 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

Создание автоматических чисел для 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'.

Смотрите также

Функции

Классы