Создание таблицы

Вы можете добавить таблицы содержимого к отчету с помощью mlreportgen.report.TableOfContents класс. Этот предопределенный класс автоматически добавляет в отчет отформатированную таблицу содержимого, содержащий заголовки отчетов. Гораздо проще и эффективнее использовать этот класс, а не использовать объекты DOM для создания таблицы содержимого. Для получения информации и примеров смотрите mlreportgen.report.TableOfContents.

Кроме того, используя объекты DOM, можно создать таблицу содержимого в программе отчетов или использовать шаблон для определения оглавления. Чтобы создать TOC программно, добавьте mlreportgen.dom.TOC объект вашему отчетному документу.

Использование шаблона гарантирует, что все программы отчетов, использующие этот шаблон, создают один и тот же тип оглавления. Кроме того, с шаблоном вы обновляете оглавление только в одном месте, если ваше форматирование изменяется.

При использовании шаблона можно:

  • Включите ссылку TOC в шаблон Word или в пакет шаблона HTML или PDF (root.html).

  • Создайте шаблон детали документа для оглавления и вставьте его программно.

Используя любой из подходов, программа отчетов должна создать объекты заголовков, которые задают числовой уровень или объекты абзацев, которые задают уровень контура. Генератор ТОС использует содержимое с информацией об уровне для определения структуры.

Создайте ТОС в программе отчетов

DOM API поддерживает автоматическую генерацию таблицы содержимого документа. Чтобы включить автоматическую генерацию TOC:

  • Использование Paragraph или объекты заголовка (Heading, Heading1, и так далее) в документе для определения заголовков разделов. Если вы используете Paragraph объект для заголовка, необходимо задать OutlineLevel абзаца свойство к соответствующему значению, например, 1 для главы или другого заголовка верхнего уровня.

  • Вставьте заполнитель оглавления в документ, где требуется сгенерировать оглавление. Заполнитель оглавления можно вставить программно или в шаблон документа.

Программное создание ТОС

Чтобы создать заполнитель оглавления программно, добавьте mlreportgen.dom.TOC объект, в котором необходимо сгенерировать оглавление. Можно задать количество уровней, включаемых в оглавление, и тип выноски. Значениями по умолчанию являются три уровня и выноска точки. Этот пример использует два уровня и выноску через точку.

import mlreportgen.dom.*;
d = Document('mydoc','pdf');
open(d);

title = append(d,Paragraph('My TOC Document'));
title.Bold = true;
title.FontSize = '28pt';

toc = append(d,TOC(2));
toc.Style = {PageBreakBefore(true)};

h1 = append(d,Heading1('Chapter 1'));
h1.Style = {PageBreakBefore(true)};
p1 = append(d,Paragraph('Hello World'));

h2 = append(d,Heading2('Section 1.1'));
h2.Style = {PageBreakBefore(true)};
p2 = append(d,Paragraph('Another page'));

h3 = append(d,Heading3('My Subsection 1.1.a'));
p3 = append(d, Paragraph('My Level 3 Heading Text'));

close(d);
rptview(d.OutputPath);

Использовать шаблон для создания ТОС Microsoft Word

Можно использовать Word для вставки ссылки объекта Word TOC в шаблон документа Word или детали документа. Word заменяет ссылку TOC на автоматически сгенерированный TOC при обновлении документа.

Чтобы сгенерировать таблицу содержимого в отчете DOM Word с помощью шаблона, содержащего ссылку TOC:

  1. Чтобы указать, где в отчете сгенерировать оглавление, создайте таблица ссылку на содержимое в шаблоне Word. См. «Создание ссылки на оглавление таблицы слов».

  2. Установите уровни контуров головок сечений, которые необходимо отобразить в таблицу содержимого. См. Раздел «Задание уровней контуров головок сечений».

  3. Обновление сгенерированного документа. См. раздел «Обновление ТОС в отчете Word».

Создайте ссылку на оглавление таблицы слов

  1. Откройте шаблон в Word.

  2. Щелкните, где необходимо создать таблицу содержимого.

  3. На вкладке References нажмите Table of Contents.

  4. Выберите опцию формата TOC, чтобы сгенерировать таблицу содержимого. Например, выберите опцию Built-In формата. Появится оглавление.

  5. Сохраните шаблон.

Примечание

Если требуется использовать деталь документа для вставки оглавления, вставьте ссылку оглавления в шаблон детали документа. Перед сохранением удалите образец из шаблона. См. раздел «Создание библиотеки шаблонов деталей документов Microsoft Word и программная вставка заполнителя ТОС с использованием детали документа».

Обновление ТОС в отчете Word

Для генерации оглавления необходимо обновить документ Word, содержащий ссылку на оглавление. В Windows® систем, DOM API rptview команда использует Word для обновления отображаемого документа Word. Если вы открываете документ Word непосредственно, например, документ, сгенерированный DOM API в системе, отличной от Windows, необходимо обновить TOC.

  1. В шаблоне Word выберите ссылку TOC.

  2. На вкладке References нажмите Update Table.

  3. В диалоговом окне Таблицы обновления содержимого выберите Update entire table и нажатие кнопки OK.

Создайте Таблицу содержимого в HTML или PDF Шаблонов

Когда вы используете PDF или HTML шаблон для добавления TOC, вы можете:

  • Включите заполнитель таблицы содержимого в основной шаблон (root.html) в вашем пакете шаблона.

  • Включите заполнитель оглавления в шаблон детали документа.

Чтобы создать таблицу содержимого в HTML или PDF-отчете с помощью шаблона детали документа, выполните следующие действия.

  • Определите шаблон детали документа, который включает заполнитель оглавления.

  • Программно вставьте деталь документа в отчет.

  • Использование Paragraph или объекты заголовка (Heading, Heading1, и так далее), чтобы указать заголовки вашего отчета. Если вы используете Paragraph объект для заголовка, необходимо задать его OutlineLevel свойство к соответствующему значению.

Определение шаблона позиции документа для оглавления

Чтобы создать или изменить шаблон детали документа для оглавления, используйте код в этой форме:

<dptemplate name="ReportTOC">
     <TOC number-of-levels ="3" leader-pattern="dots" />
</dptemplate>

Вы можете:

  • Замените ReportTOC с именем, которое вы предпочитаете

  • Задайте number-of-levels к количеству уровней заголовков, которые необходимо включить в TOC

  • Задайте leader-pattern на dots или к spaces

Для получения примера см. PDF и HTML Позиции документа и Отверстий.

Вставка заполнителя оглавления программно с использованием детали документа

Используйте DocumentPart Класс для вставки образца детали документа, содержащей заполнитель оглавления. Если в шаблоне определен шаблон детали документа, при определении объекта документа необходимо включить имя пакета шаблона. Для примера:

d = Document('MyReport','html','MyTemplate');

Этот код использует поставляемую позицию документа ReportTOC в шаблоне по умолчанию, чтобы сгенерировать таблицу содержимого.

import mlreportgen.dom.*;
d = Document('MyReport','pdf');
append(d,'My Report');

append(d,DocumentPart(d,'ReportTOC'));
append(d,Heading1('Chapter 1'));
append(d,Heading2('Section 1'));

close(d);
rptview(d.OutputPath);

Совет

Используйте переменную, назначенную Document объект в DocumentPart синтаксис для использования шаблона детали документа, связанного с объектом документа:

append(d,DocumentPart(d,'ReportTOC'));

Если вы используете этот синтаксис, вам не нужно вызывать шаблон и указывать тип документа при обращении к детали документа. Этот подход упрощает ваш код и более эффективно генерирует отчет.

Установите уровни контура головок сечений

Чтобы сгенерировать таблицу содержимого в отчете, программа должна задать уровни контура заголовков сечений, которые необходимо включить в содержимое. Уровень контура является свойством формата абзаца, которое задает, отображается ли и на каком уровне содержимое абзаца в таблицу содержимого. Для примера, если абзац имеет уровень контура 1, содержимое появляется на верхнем уровне сгенерированной таблицы содержимого. Можно задать до девяти уровней контура.

Чтобы задать уровень контура абзацев, используйте один из таких подходов.

Использование определяемых шаблоном стилей для задания уровней контура

Можно использовать стили, определенные в шаблоне отчета, чтобы задать уровень контура абзаца. По умолчанию документы Word включают набор стилей «Заголовок 1», «Заголовок 2» и так далее, которые определяют уровни контура. Программа может использовать эти встроенные стили, чтобы указать, что эти головки отображаются в оглавлении. Этот пример использует стили, заданные шаблоном, чтобы задать уровни контуров головок сечений и принять, что шаблон MyTemplate включает ссылку TOC.

import mlreportgen.dom.*;
d = Document('MyReport','docx','MyTemplate');

append(d,Paragraph('Chapter 1','Heading 1'));
append(d,Paragraph('Section 1','Heading 2'));

close(d);
rptview(d.OutputPath); % Updates the TOC

Можно также использовать Word или HTML редактора, чтобы задать собственные стили заголовков и затем использовать их для генерации отчета.

Используйте объекты формата для задания уровней контура

Можно использовать объекты формата, чтобы задать уровни контура. Этот пример принимает, что шаблон MyTemplate включает ссылку TOC.

import mlreportgen.dom.*;
d = Document('MyReport','docx','MyTemplate');

h1 = {FontFamily('Arial'),FontSize('16pt'),OutlineLevel(1)};
h2 = {FontFamily('Arial'),FontSize('14pt'),OutlineLevel(2)};
p = append(d,Paragraph('Chapter 1'));
p.Style = h1;
p = append(d,Paragraph('Section 1'));
p.Style = h2;

close(d);
rptview(d.OutputPath); % Updates the TOC

Использование объектов заголовков для задания уровней контура

Можно использовать mlreportgen.dom.Heading1 объект (и Heading2, Heading3, и так далее) для определения уровней контура. A Heading1 объект является абзацем, конструктор которого задает его уровень контура. Можно использовать Heading1 только объект или стили на основе шаблонов или форматированные стили на основе объектов. Этот пример принимает, что шаблон MyTemplate включает ссылку TOC.

import mlreportgen.dom.*;
d = Document('MyReport','docx','MyTemplate');

h1 = {FontFamily('Arial'),FontSize('16pt')};
h2 = {FontFamily('Arial'),FontSize('14pt')};
h = append(d,Heading1('Chapter 1'));
h.Style = h1;
h = append(d,Heading2('Section 1'));
p.Style = h2;

close(d);
rptview(d.OutputPath); % Updates the TOC

В отчетах HTML и PDF Heading1 и Heading2 объекты генерируют элементы HTML h1 и h2. При помощи объектов Heading1, Heading2и так далее можно убедиться, что в отчете используются стили по умолчанию для заголовков.

См. также

Функции

Классы

Похожие темы