Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

В данной статье мы на примере разберём, как с нуля создать шаблон отчёта с помощью JasperReports Library, создать модуль отчётов набор шаблонов и установить его в программу Платформу НЕЙРОСС Отчёты.

Перед чтением данной статьи рекомендуем ознакомиться с руководством разработчика.

Оглавление

Оглавление
excludeОглавление

Общие сведения

Отчёт будем строить по реляционной PostgreSQL базе данных. Для примера возьмём отчёт, в котором выведем список таблиц выбранной базы данных и размер, занимаемый этими таблицами на диске.

...

Блок кода
languagesql
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-шаблоне привязать соответствующие поля ввода данных — текстовое для ввода имени схемы, числовое для ввода ограничения на размер таблицы на диске.

...

  1. Property Name: ru.itrium.ultima.reports.form.field.class Value: extensions.reports.generic.InputFormField
  2. 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

...

Примечание
titleВНИМАНИЕ

Текстовые файлы report.conf и deployment.conf должны быть созданы в кодировке UTF-8. В противном случае в интерфейс программы интерфейсе Платформы НЕЙРОСС Отчёты соответствующий текст может отображаться некорректно.

...

В директории C:\exampleModule появится новый zip-файл. Измените его имя на exampleModule-0.1.0.zip.

Это файл модуля набора шаблонов отчётов. Его можно загрузить в программу Платформу НЕЙРОСС Отчёты.

Установка

...

набора шаблонов

Осталось установить созданный модуль набор шаблонов в Платформу НЕЙРОСС Отчёты.

Для установки модуля набора шаблонов откройте интерфейс программыПлатформы, авторизуйтесь и перейдите в раздел «Модули»«Отчёты → Наборы шаблонов отчётов».

Выберите файл модуля набора шаблонов и нажмите кнопку «Загрузить». В таблице установленных модулей наборов шаблонов должна появиться новая запись c названием «Новый модуль отчётов» набор шаблонов» (это название модуля набора шаблонов из файла deployment.conf):

...

PDF-файл: Размер таблиц на диске (16-09-2018 15-58).pdf

Материалы

Пример модуля отчётовнабора шаблонов, созданного в соответствии с приведённой инструкцией, доступен по ссылке.

...