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

Дизайн отчетов

Для каждого из отчетов необходимо задать специальный файл (шаблон), который будет использоваться для построения результирующего документа. В качестве имени шаблона конкретного отчета используется <каноническое имя формы>_<имя первой группы объектов>, где каноническое имя формы включает её пространство имён, причём каждая . заменяется на _. Считается, что у пустой группы объектов нет имени, поэтому если первая группа объектов пустая, имя шаблона просто равняется каноническому имени формы (без постфикса _). Пустая группа объектов всегда является первой группой объектов формы, поэтому у формы всегда есть верхний отчет, называемый по одному только каноническому имени формы, без постфикса; если подотчеты не нужны, этот шаблон — единственный. Каждый подотчет добавляет свой шаблон с постфиксом _<группа> по своей первой (непустой) группе объектов — так, например, форма с двумя независимыми группами объектов даёт три шаблона: верхний без постфикса и по одному на каждый из двух подотчетов.

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

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

В качестве конкретной реализации механизма формирования документов используется LGPL технология JasperReports. Соответственно шаблонами являются файлы формата jrxml, которые можно редактировать при помощи приложения JasperSoft Studio. В момент формирования отчета выполняется поиск файлов шаблонов с именем <имя шаблона>.jrxml в текущем classpath'е сервера (в том числе во всех подкаталогах). Если хоть один файл шаблона не был найден, платформа сгенерирует некоторый автоматический дизайн. Этот дизайн, при запуске сервера из IDE и формировании отчета в режиме предпросмотра, можно при помощи соответствующих кнопок сохранить в каталог запуска (и каталог исходников), после чего отредактировать в соответствии с требованиями задачи (при этом платформа будет автоматически синхронизировать файлы в каталоге запуска и каталоге исходников).