Перейти к основному содержимому
Версия: 7.0

Brief: отчёты

Печатное представление

Отчет — это шаблон, при подстановке данных в который строится документ. Печатное представление формы состоит из набора отчетов, каждому из которых отведен свой набор групп объектов формы; как группы разбиваются по отчетам и как опция SUBREPORT у группы выделяет ее в отдельный отчет — подотчет — описано в построении иерархии отчетов.

Что происходит с документом, выбирают параметры оператора PRINT, у которых есть два варианта. MESSAGE показывает форму пользователю сообщением: свойства корневой группы становятся его заголовком, а таблица под ним берется из ПЕРВОЙ дочерней группы — форма без дочерней группы дает пустую таблицу, а всякая дочерняя группа после первой не попадает в результат. Второй вариант — интерактивный: previewMode — это либо PREVIEW, значение по умолчанию, когда отчет показывается пользователю, либо NOPREVIEW, когда он напрямую уходит на принтер (TO <выражение> выбирает принтер), а формат — PDF, DOC, DOCX, XLS, XLSX, HTML, RTF — вместе с TO <свойство> записывает документ в файл на сервере. SHEET и PASSWORD доступны для XLS и XLSX.

FORM printOrder
OBJECTS o = Order
PROPERTIES(o) date, nameCustomer

OBJECTS d = OrderDetail SUBREPORT
PROPERTIES(d) nameSku, quantity
FILTERS order(d) = o
;

print (Order o) { PRINT printOrder OBJECTS o = o DOCX TO orderFile; }

Дизайн отчёта

Дизайн отчета — то, как отчет раскладывается в документе. Отчет описывает шаблонфайл .jrxml технологии JasperReports, который платформа ищет в classpath сервера по имени, производному от канонического имени формы; полями шаблона служат свойства формы, их имена и типы совпадают. Точные правила именования и цена ошибки в имени — Правила: отчеты.

Своего шаблона может и не быть: если хотя бы один не найден, платформа строит автоматический дизайн по структуре формы. Шаблон задается и явно, свойством с именем файла или самим файлом: блок REPORT инструкции FORM — для верхнего отчета, REPORTS (синоним REPORTFILES) — для перечисленных групп объектов, выражение после SUBREPORT в блоке объектов — для своей группы.