Создание шаблона отчёта

Предыдущая страницаВ началоСледующая страница

Шаблон отчета является GRB файлом, в котором по определённым правилам описан формат отчета и состав данных в нем. Путь к папке с шаблонами отчетов задается в установках системы (Установки > Спецификация > Шаблоны отчётов/спецификаций).

В файле шаблона необходимо создать таблицу при помощи команды Текст. В её ячейки нужно вписать состав шаблона.

Опишем последовательность действий и их варианты более подробно.

1. Создайте новый документ на основе прототипа 2D деталь и сохраните его в папку с шаблонами отчётов.

2. В параметрах страницы (Параметры документа > Страница > Лист) задайте формат А4 и вертикальную ориентацию страницы.

3. Если шаблон предназначается для создания отчёта на отдельной странице или в отдельном документе, то вставьте 2D фрагмент - форматку, содержащую заголовок таблицы и разлиновку строк. Если шаблон предназначен для создания отчёта на текущей странице, то этот пункт можно пропустить.

4. При помощи команды Текст создайте параграф-текст, привязав его либо к узлам с фрагмента форматки, либо в абсолютных координатах.

ProductStructureWindow91

После указания точек привязки нажмите AutomenuOk1. Затем укажите координаты для новых прямоугольников текста при помощи опции автоменю TextDimensionsPar Параметры изменения размеров прямоугольника. Если шаблон предназначен для текущей страницы, выбирайте режим Создать прямоугольник на текущей странице, если нет, то выбирайте Создать прямоугольник на новой странице. Обратите внимание, что в первом случае координаты не должны совпадать с координатами уже созданного прямоугольника, а во втором - координаты должны соответствовать узлам привязки на форматке для последующих листов спецификации или отчёта.

23ProductStructureWindow92

5. Создадим заголовок таблицы отчета. Если шаблон предназначен для создания отчёта на отдельной странице, то этот пункт можно пропустить.

Заголовок обрамляется элементами {summary} и  {/summary}. Между ними вставляется таблица с именами столбцов.

CreateTemplateReport3

6. Запишем элементы для вывода группы записей {group} и {/group}.

CreateTemplateReport4

7. Создадим таблицу для вывода заголовка группы. Для стандартных спецификаций заголовком группы является название раздела спецификации.

Важно! Суммарная ширина всех таблиц должна совпадать с первой таблицей.

В одну из колонок запишем элемент {Group_name /}.

CreateTemplateReport5

8. Если заголовок группы не содержит текста (в данном случае это будет группа записей, у которых не задан раздел спецификации), то вторая таблица окажется пустой и её выводить в отчёт не нужно. Чтобы выполнить это, добавим условие. Сначала в параметрах состава изделия посмотрим название соответствующей группы - Без раздела.

ProductStructureWindow93

Затем добавим фильтр к открывающему элементу группы:

 {group hide_table="Group_name = 'Без раздела'"}.

CreateTemplateReport7

9. Следующим шагом будет добавление таблицы для вывода отдельной записи. Добавим элементы {list} и {/list} и таблицу.

CreateTemplateReport8

10. В третьей таблице зададим имена колонок состава изделия, из которых будут заполняться данные. Если имя колонки не содержит пробелов, то для вывода её данных достаточно написать {имя_колонки/}. Вместо имени колонки можно использовать его синоним.

ProductStructureWindow94

Заполним те ячейки третьей таблицы, в которых выводится просто значение из соответствующей колонки.

CreateTemplateReport10

Если имя колонки содержит пробел, то надо использовать запись следующего формата:

 {param name="Имя колонки"/}

Вывод значения можно ограничивать при помощи фильтра. Например, в разделе Стандартные изделия не заполняется колонка Формат. Чтобы обеспечить выполнение этого условия можно написать:

 {param name="Формат" filter="Раздел != 'Спецификации\Стандартные изделия' "/}

Следующий фильтр позволит выводить в колонку только ненулевые значения поля "Количество":

 {количество filter="Количество != 0"/}

Заполним оставшиеся колонки записями с условиями.

Важно! Текст шаблона должен размещаться в одном прямоугольнике параграф-текста, не выходя за его пределы по высоте и ширине.

На этом создание самой простой формы шаблона завершено. Завершите редактирование текста нажатием AutomenuOk1 и сохраните файл в папке шаблонов отчёта (Установки > Спецификация > Шаблоны отчётов/спецификаций).

В параметрах состава изделия добавьте новый генератор отчётов и подключите к этому генератору созданный файл шаблона, как описано в главе Отчёты по составу изделия.  

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

CreateTemplateReport11

Для уже созданных документов понадобится обновить параметры состава изделия в соответствии со параметрами изменённого типа.

Дополнительные возможности

Вывод в отчёт результата суммирования по колонке.
Например, для вывода общей массы используется запись:
       {outcome name="Масса" out_operation="numeric_sum"/}
и отдельная табличка в обрамлении элементов {summary} и  {/summary}.

CreateTemplateReport12

Форматирование выводимого в колонку значения выполняется при помощи строкового параметра argument .
Например, следующая запись выводит результат суммирования с точностью двух знаков после запятой:
       {outcome name="Масса" out_operation="numeric_sum" argument="F2"/}

Вывод в отчёт значения переменной осуществляется при помощи элемента variable name.
Пример:
       {variable name="$Date"/}.
Переменная должна существовать в файле, на основе которого создаётся отчёт.

Вывод записей всех уровней для представления с учетом иерархии возможен при использовании атрибута recursive.
Пример:
       {list recursive="true"}.

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

 23CreateTemplateReport13

Макрос может обрабатывать записи состава изделия или данные, выводимые в ячейку таблицы. В первом случае макрос обработки группы вызывается в виде:
 {group_macro name="Имя"/}
Имя указывает макрос, который должен быть запущен перед заполнением таблицы. Вызов макроса может иметь атрибут filter -  макрос будет применяться только к тем группам, которые удовлетворяют условию.
Пример:
 {group_macro name="Gen.Gen.GroupMacro" filter="Раздел = 'Спецификации\Стандартные изделия'"/}
Макрос для обработки текстового значения в ячейке таблицы используется в элементах param и outcome. Вызов макроса пишется в виде:
 {param name="Имя колонки" str_proc_macro="Имя"/}
Имя указывает макрос обработки строки.
Пример:
 {param name="Количество$$00" str_proc_macro="Gen.Gen.XAmount"/}

Полное описание используемых для вывода данных элементов дано в разделе Структура шаблона отчёта.

Добавление записей состава изделия из шаблона
Если создать в шаблоне отчёта какие-либо записи состава изделия, то при создании отчёта по этому шаблону можно добавить записи из шаблона в текущий документ. Возможность добавления записей управляется параметром генератора отчётов Добавить записи СИ. Таким образом можно, например, включать отчёты в состав изделия. Записи, добавленные из шаблона отчёта, удаляются при удалении отчёта.

Основные темы в этом разделе:

Состав шаблона отчета

Шаблон отчёта с переменным набором колонок