Урок 9. Настройка печатных форм
Цель данного урока, ознакомить слушателя с принципами создания отчетов.
1. Печатные формы
Печатная форма определяет тип шаблона отчёта, формат и правила его построения. При выполнении печатной формы формируется отчет в виде файла с заданным форматов.
Печатная форма может быть подключена к документу с типа объекта без внесения изменений в программный код.
Версии печатных форм
Версия печатной формы позволяет:
- Безопасно вернутся к предыдущей реализации;
- Запускать реализацию в зависимости от периода;
- Тип шаблона печатной формы;
- Бинарный файл для построителя отчетов;
- Дату версии;
- Описание;
Типы шаблонов печатных форм
Определяют формат в котором задаются шаблоны печатных форм.
-
jasper
Java библиотека для построения печатных отчетов. Позволяет строить:- Готовые к печати PDF-файлы в интерактивном динамическом HTML с навигацией внутри или за пределами отчета
- Высококачественные документы PowerPoint, RTF, Word
- Электронные таблицы или необработанные CSV, JSON или XML
-
xlsx
Шаблоном xlxs является документ в форматеxlxs
, размеченный согласно общим правилам разметки шаблонов
Для изучения подробнее смотри: -
docx
Шаблоном docx является документ в форматеdocx
, размеченный согласно общим правилам разметки шаблонов Для изучения подробнее смотри:
Jaspersoft Studio
Шаблоны для построения отчетов пишутся в Jaspersoft Studio
Jaspersoft Studio
- это программное обеспечение для редактирования JasperReports
. Студия помогает:
- Разрабатывать и запускать шаблоны отчетов;
- Создавать запросы к отчетам;
- Писать сложные выражения;
- Компоновать визуальные компоненты.
Шаблон представляет из себя zip архив содержащий набор xml файлов сформированных в jasper studio. Jasper studio это специализированное средство построения печатных форм.
Выходные форматы шаблонов печатных форм
Если тип шаблона печатной формы поддерживает конвертацию в другие форматы, можно указать перечень доступных форматов.
Если указано несколько доступных форматов, при печати печатной формы пользователю будет задан вопрос в каком формате построить отчет.
Доступные форматы шаблонов печатных форм
-
jasper
- png
- txt
- html
- xls
- prt
-
docx
- docx
- Внимание
-
- При установке выходного формата pdf шаблона docx на месте тегов в документе будут подставлены изображения. Детально данная функциональность будет описана ниже.
Загрузка файлов
Чтобы загрузить файл шаблона печатной формы в Global необходимо:
-
Создать новую печатную форму в Global.
Чтобы настроить новую печатную форму в Global:-
Откройте приложение
Настройка системы
. -
Откройте перечень печатных форм
Отчеты > Печатные формы
. -
Используя операцию
Создать
добавьте новый отчет. -
Заполните обязательные атрибуты и нажмите кнопку
Редактировать
, чтобы перейти в карточку.
-
Откройте приложение
-
Привязать новую печатную форму к типу объекта.
Чтобы настроить новую версию печатной формы необходимо:-
На вкладке
Версии печатной формы
создайте новую версию. -
Для версии выберите
Тип шаблона печатной формы
. -
Нажмите на кнопку
Загрузить файл в систему
. -
Выберите файл шаблона печатной формы:
-
jasper
Для шаблона типа «jasper» файлом шаблона будет являться архив, содержащий шаблон с наименованием «main.jrml».
-
jasper
-
На вкладке
- Внимание
-
- Шаблоны суботчетов могут иметь любое название
- В архиве может быть только один основной отчёт с наименованием main
-
docx
Файл формата docx -
xlsx
Файл формата docx
Параметры отчета
Параметры отчета передаются в запрос, формирующий данные для отчета.
Пользовательские параметры
Настраиваются на печатной форме, и значения для таких параметров пользователь может внести перед выполнением отчета.
Служебные параметры
Формируются автоматически
-
SIGNDATA_DZ
– Блок подписи -
IDUSER
– Пользователь -
IDSRCOBJECT
– Объект источник
Идентификатор объекта от которого выполняется печатная форма. -
IDSRCCLASS
– Класс источник
Идентификатор класса объекта от которого выполняется печатная форма
Программные параметры
Параметры, переданные в Map программного метода при построении отчёта.
Вызов печатных форм
Печатные формы могут вызываться:
- из операции выборки;
- из запроса к сервису печати;
- из rest сервиса;
- От произвольного объекта системы;
- От интерфейса свободные отчеты.
Вызов печатной формы из операции выборки
Для вызова отчета из операции выборки используйте функцию ru.bitec.app.gtk.gl.Reports#createReportEx
:
/** * Выполняет построение отчёта по системному имени отчёта. * * @param reportName Имя отчёта * @param reportVersionDate Дата * @param postBuildAction Действие, которое необходимо произвести после заполнения отчёта * @param propertyMap Карта входящих параметров */ @throws[ApplicationException] def createReportEx(reportName: String, reportVersionDate: Date, postBuildAction: PostBuildAction, propertyMap: Map[String, Any]): Unit
Данная функция может быть вызвана только в контексте интерактивной бизнес логики(интерфейса пользователя).
Пример:
reports.createReportEx("Mct_OrderSheetMaterials2", null, PostBuildAction.print, Map[String, Any]("IDSRCOBJECT" -> getVar("id").asNLong, "GIDSRCOBJECT" -> getVar("gid").asNString, "SDESIGNATION" -> getVar("sCode").asNString) )
Формирования файла с отчетом
Для формирования файла с отчетом используйте функцию ru.bitec.app.rpt.Rpt_Pkg#getReportStreamEx
:
/** * Выполняет построение отчёта по системному имени отчёта. * Если для версии отчета указано несколько доступных для печати форматов, * то будет выдана ошибка построения. * Требуется явно указать формат построения, указав параметр [[Rpt_Pkg.ParamFormatType]] * * @param reportName Имя отчёта * @param reportVersionDate Дата * @param propertyMap Карта входящих параметров * @return InputStream, содержащий результат построения отчёта. ByteArrayInputStream не требует закрытия. */ def getReportStreamEx(reportName: String, reportVersionDate: Date, propertyMap: Map[String, Any]): Option[InputStream]
Данная функция может быть вызвана в контексте автономной логики(rest сервиса)
- Внимание
-
- В случае, если получен поток, его необходимо обязательно закрыть.
Вызов печатной формы от произвольного объекта
При открытии карточки любого объекта, выводятся стандартные операции печати по которым можно выполнять вызов печатных форм. Для добавления печатной формы к списку печати для типа объекта:
-
Откройте приложение
Настройка системы
. -
Откройте типы объектов.
Выполните пункт менюСущности > Типы объектов > Типы объектов
. -
Перейдите на вкладку
Печатные формы
. - Добавьте необходимые печатные формы.
Вызов печатной формы в свободных отчетах
Свободные отчеты позволяют настроить для пользователя и приложения перечень отчетов которые можно построить без привязки к каким либо типом объектов.
Для вызова интерфейса построения свободных отчетов:
- Откройте приложение.
-
Откройте свободные отчеты.
Выполните пункт менюОтчеты > Свободные отчеты
. - Выберите нужный отчет.
- Заполните параметры.
-
Напечатайте отчет.
Для этого выполните операциюПечать
.
Для того чтобы ПФ могла быть вызвана из свободных отчетов:
Настройки системы
.Отчеты > Печатные формы
.Свободный отчет
.- Примечание
-
- Если роли не указаны, печатная форма будет доступна всем пользователям