В данной статье мы на примере разберём, как с нуля создать шаблон отчёта с помощью JasperReports Library, создать модуль отчётов набор шаблонов и установить его в программу Платформу НЕЙРОСС Отчёты.
Перед чтением данной статьи рекомендуем ознакомиться с руководством разработчика.
Оглавление
Оглавление | ||
---|---|---|
|
Общие сведения
Отчёт будем строить по реляционной PostgreSQL базе данных. Для примера возьмём отчёт, в котором выведем список таблиц выбранной базы данных и размер, занимаемый этими таблицами на диске.
...
Блок кода | ||
---|---|---|
| ||
SELECT * , pg_size_pretty(total_bytes) AS total , pg_size_pretty(index_bytes) AS INDEX , pg_size_pretty(toast_bytes) AS toast , pg_size_pretty(table_bytes) AS TABLE FROM ( SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes FROM ( SELECT c.oid,nspname AS table_schema, relname AS TABLE_NAME , c.reltuples AS row_estimate , pg_total_relation_size(c.oid) AS total_bytes , pg_indexes_size(c.oid) AS index_bytes , pg_total_relation_size(reltoastrelid) AS toast_bytes FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE relkind = 'r' ) a ) a WHERE table_schema = 'public' AND a.total_bytes >= 10000 ORDER BY table_name; |
Поехали!
Создание шаблона в Jaspersoft Studio
Запускаем Jaspersoft Studio (в примере используется версия 6.3.0):
Создание проекта
Создадим новый JasperReports проект:
...
Проект создан. Его содержимое можно просматривать на вкладке Project Explorer:
Создание шаблона
Добавим в проект шаблон отчёта. Для этого нажмите правой кнопкой мыши на элементе проекта в дереве Project Explorer. В открывшемся контекстном меню выберите New → Jasper Report:
...
В центре окна представлен визуальный редактор нового шаблона:
Выбор секций
Нам потребуются не все секции, а только Title, Column Header, Detail 1, Page Footer и Background. Отключим / удалим ненужные секции на вкладке Outline. Для этого откройте контекстное меню на ненужной секции и выберите пункт Delete. И так для каждой ненужной секции:
...
В результате макет страницы будет выглядеть следующим образом:
Параметры
Входными параметрам для шаблона будут:
...
Сохраните шаблон. В списке параметров помимо системных теперь присутствуют два созданных нами параметра:
Источник данных
Теперь добавим источник данных — мы будем работать с реляционной PostgreSQL базой данных. Это может быть любая существующая база данных. В статье используется база данных с именем ultima.
...
Новый источник данных появился в списке на вкладке Repository Explorer.
SQL-запрос
Теперь зададим для шаблона целевой SQL-запрос. Для этого в редакторе нажмите на соответствующую кнопку:
...
Не закрывайте диалоговое окно. Теперь мы добавим поля (fields), которые хотим вывести в отчёте. Jaspersoft Studio позволяет построить список полей автоматически, выполним запрос к источнику данных.
Поля
Выбираем в списке вверху (где написано -- No Data Adapter --) созданный нами ранее источник данных:
...
Нажмите ОК, чтобы применить изменения и закрыть диалоговое окно.
Внешний вид
Для последующего использования шаблона в программе НЕЙРОСС Отчёты необходимо определить стиль по умолчанию с поддерживаемым шрифтом. На момент написания данной статьи НЕЙРОСС Отчёты поддерживается шрифт Arial.
...
Сохраните документ. В результате макет должен выглядеть так:
Предпросмотр
Ну что же, макет отчёта закончен. Можно посмотреть, как он будет выглядеть.
...
Убедитесь, что вверху в списке выбран источник данных Example Database, после чего нажмите на зелёную кнопку предпросмотра. Спустя пару секунд окне вы увидите результат:
Привязка полей ввода
Для того, чтобы пользователь в программе НЕЙРОСС Отчёты мог задать входные параметры, необходимо к этим параметрам в Jasper-шаблоне привязать соответствующие поля ввода данных — текстовое для ввода имени схемы, числовое для ввода ограничения на размер таблицы на диске.
...
- Property Name:
ru.itrium.ultima.reports.form.field.class
Value:extensions.reports.generic.InputFormField
- Property Name:
ru.itrium.ultima.reports.form.field.inputType
Value:number
Сохраните шаблон.
Компиляция шаблона
Итак, мы почти закончили редактирование шаблона в Jaspersoft Studio. Осталось скомпилировать шаблон.
...
В директории Jasper-проекта рядом с файлом example.jrxml появится файл example.jasper. Этот файл потребуется при создании модуля отчётовнабора шаблонов.
Создание
...
набора шаблонов отчётов
Для того, чтобы созданным шаблоном можно было пользоваться из программы Платформы НЕЙРОСС Отчёты, его необходимо упаковать в модуль набор шаблонов. Модуль Набор шаблонов — это zip-архив, содержащий один или более шаблонов и соответствующие файлы-описания.
Создайте пустую директорию exampleModule
на диске C:\
. Это корневая директория будущего модуля отчётовнабора шаблонов.
В директории C:\exampleModule
создайте вложенную директорию definitions
(C:\exampleModule\definitions
). В этой директории будут храниться шаблоны отчётов (в нашем случае — один шаблон).
...
Создайте файл-определение модуля отчётов набора шаблонов deployment.conf
в директории C:\exampleModule
следующего содержания:
Без форматирования |
---|
deployment.key=org.example.module deployment.title="Новый модульнабор отчётовшаблонов" deployment.version=0.1.0 |
...
Примечание | ||
---|---|---|
| ||
Текстовые файлы |
...
В директории C:\exampleModule
появится новый zip-файл. Измените его имя на exampleModule-0.1.0.zip
.
Это файл модуля набора шаблонов отчётов. Его можно загрузить в программу Платформу НЕЙРОСС Отчёты.
Установка
...
набора шаблонов
Осталось установить созданный модуль набор шаблонов в Платформу НЕЙРОСС Отчёты.
Для установки модуля набора шаблонов откройте интерфейс программыПлатформы, авторизуйтесь и перейдите в раздел «Модули»«Отчёты → Наборы шаблонов отчётов».
Выберите файл модуля набора шаблонов и нажмите кнопку «Загрузить». В таблице установленных модулей наборов шаблонов должна появиться новая запись c названием «Новый модуль отчётов» набор шаблонов» (это название модуля набора шаблонов из файла deployment.conf
):
...
PDF-файл: Размер таблиц на диске (16-09-2018 15-58).pdf
Материалы
Пример модуля отчётовнабора шаблонов, созданного в соответствии с приведённой инструкцией, доступен по ссылке.
...