1.2.2. Шаблоны DOCX, DOC и ODT

Шаблон ODT создается с помощью OpenOffice / LibreOffice, для создания шаблонов DOC и DOCX можно использовать как OpenOffice, так и Microsoft Office.

Шаблон данного типа включает в себя текст документа и опционально одну или несколько таблиц. В тексте документа выводятся данные из первых строк произвольных полос. В таблицу можно выводить произвольное количество строк некоторой полосы.

Для вывода поля в тексте документа необходимо использовать строку вида ${band_name.field_name}, где band_name - имя полосы, field_name - имя поля.

Для вывода данных в таблицу она должна быть привязана к некоторой полосе. Это делается путем указания в первой ячейке таблицы строки вида ##band=band_name, где band_name - имя полосы. Поля в таблице размечаются строками вида ${field_name}, где field_name - имя поля связанной с таблицей полосы. Для обращения к полям других полос в таблице можно использовать префикс с именем полосы, как это делается в полях текста документа. В одной ячейке таблицы можно выводить несколько полей.

Вложенные гризонтальные полосы в формате DOCX, DOC и ODT не поддерживаются. Если вложенные полосы вам необходимы, предпочтительно использовать XLS(X)-шаблоны.

Warning

Таблица должна содержать либо одну, либо две строки. Если строк в таблице две, то поля связанной полосы должны находиться во второй строке. В первую заносится маркер с именем связанной полосы и, при необходимости, статический текст и поля других полос.

Например, для вывода отчета, состоящего из двух полос: Book и Authors, первая из которых выводит название и жанр книги, а вторая список авторов этой книги, шаблон может выглядеть следующим образом:

report template doc
Warning

Формат ячеек для шаблонов DOCX, DOC и ODT не поддерживается. Рекомендуется приводить данные к строке в запросе. Например, для значения

select e.year as "year"

можно выполнить следующее приведение:

select cast(e.year as varchar(4)) as "year"