Редактор jrxml-шаблонів iReport

На момент написання цієї статті останньою версією була iReport-5.6.0, з якою виникли невеликі складнощі, пов'язані з версією JVM 1.8.0.131. Так на одному комп'ютері (Windows-10, x64)iReportстартував відразу ж без проблем, а на іншому - (Windows-7, x32) не захотів працювати. Після визначення у файлі iReport-5.6.0/etc/ireport.conf шляху до jdk1.7.0_79, проблема була вирішена.

На сторінці описується застосуванняiReport Designerдля створення jrxml-шаблону, який використовується у прикладі на сторінці JasperReports. Там же наводиться опис структуриjrxml-шаблонуі вихідні дані для звіту.

Вибір типу шаблону

Для визначення типу шаблону потрібно вибрати пункт меню File/New, яке відкриє вікно з набором різних типів.

панелі

Вибираємо шаблон за замовчуванням. Далі натискаємо на кнопку "Open this Template" і переходимо до визначення найменування шаблону та директорії його розташування.

Java

Якщо натиснути на першому кроці кнопку Launch Report Wizard, то додатково можна буде визначити джерело даних і параметри підключення до нього, поля у звіті і т.д. Для першого звіту це можна пропустити, тим більше, що в прикладі база даних не використовується.

Після визначення первинних параметрів відкриється вікно із заготівлею jrxml-шаблону. Зліва в інтерфейсі розташовуєтьсяReport Inspector, що визначає структуру шаблону. По центру сам шаблон, який можна перемикати в режим Designer, XML та Preview кнопками, розташованими зверху над ним. Праворуч розташовується панель властивостейPropertiesелементів шаблону. Додаткові панелі різних властивостей шаблону представлені у меню Window.

Java

Загальні налаштування

Спочатку перевіряємо мову Language. Для цього виділяємокореневий елемент уReport Inspectorі в панелі властивостейPropertiesзмінюємо Language з Groovy (за замовчуванням) на Java.

Визначення стилю шаблону

Для визначення стилю jrxml-шаблону виділяємо елемент Styles і правою кнопкою миші вибираємо контекстний пункт меню Add/Style.

ireport

В панелі властивостей встановлюємо відповідні значення: "Pdf Font name", "Pdf Encoding".

jrxml-шаблонів

Можна прямо визначити значення стилю в jrxml-шаблоні після переведення його в режим XML.

Використання шрифту ./font/ARIAL.TTF дозволяє локалізувати кирилицю.

Управління секціями шаблону

Видаляємо секції, що не використовуються в нашому першому звіті. Для цього необхідно виділити відповідну секцію в панеліReport Inspectorта в контекстному меню (відкрити правою клавішею миші), вибрати пункт Delete Band. Секція, що не використовується в шаблоні, стає вReport Inspectorсірою. Щоб додати секцію до шаблону, необхідно в контекстному меню вибрати «Add Band».

У шаблоні залишаємо лише секції Title, Column Header та Detail1.

Додавання поля, параметра, змінної

Для додавання поля до шаблону необхідно виділити елемент Fields в Report Inspector і вибрати в контекстному меню Add Field.

ireport

До елемента Fields додаємо поляstate(java.lang.String),item(java.lang.String),date(java.util.Date),quantity(java.lang.Integer),price(java.lang.Integer).

До елемента Parameters додаємо параметрDATEта визначаємо тип java.util.Date.

До елемента Variables додаємо зміннуcostз типом java.lang.Integer, для якої необхідно визначити як властивість вираз «Variable Expression». Це можна зробити в окремому вікні, натиснувши накнопку "…" в полі "Variable Expression" панелі властивостей.

шаблону

Візуальні компоненти jrxml-шаблону

Для формування інтерфейсу шаблону необхідно використовувати панель «Palette», яку можна відкрити гарячими клавішами Ctrl+Shift+8, або вибрати пункт меню Window/Palette. Панель «Palette» буде розміщена в панелі властивостей «Properties».

ireport

Для звіту вибираємо компоненти Text Field і перетягуємо одне в секцію Title і шість - в секцію Detail1. У секцію Column Header перетягуємо 6 компонентів Static Text.

За замовчуванням поля Text Field пов'язані з неіснуючим полем $F. Щоб їх пов'язати з певними у шаблоні полями, параметрами та змінними, необхідно в панелі властивостей «Properties» виділити «Text Field Expression», натиснути на кнопку «…» і у вікні «Text Field Expression» перевизначити зв'язок.

панелі

Для заголовків колонок використовуємо компоненти Static Text, для кожного з яких визначаємо текст і фон. На наступних двох скріншотах представлені панелі "Report Inspector" та "Properties" з виділеним заголовком "Вартість".

редактор
jrxml-шаблонів

Підсумковий інтерфейс jrxml-шаблону для описаного на сторінці JasperReports прикладу наведено на наступному скріншоті.

панелі

Генерований на основі шаблону звіт можна побачити тут.

Продовження статті з розглядом угруповання та підсумовування даних, а також нумерації даних у секції можна побачити тут.

З прикладом налаштування JDBC у програмі iReport та формуванням JasperReport звіту можна познайомитись тут.