Редактор 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" і переходимо до визначення найменування шаблону та директорії його розташування.

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

Загальні налаштування
Спочатку перевіряємо мову Language. Для цього виділяємокореневий елемент уReport Inspectorі в панелі властивостейPropertiesзмінюємо Language з Groovy (за замовчуванням) на Java.
Визначення стилю шаблону
Для визначення стилю jrxml-шаблону виділяємо елемент Styles і правою кнопкою миші вибираємо контекстний пункт меню Add/Style.

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

Можна прямо визначити значення стилю в jrxml-шаблоні після переведення його в режим XML.
Використання шрифту ./font/ARIAL.TTF дозволяє локалізувати кирилицю.
Управління секціями шаблону
Видаляємо секції, що не використовуються в нашому першому звіті. Для цього необхідно виділити відповідну секцію в панеліReport Inspectorта в контекстному меню (відкрити правою клавішею миші), вибрати пункт Delete Band. Секція, що не використовується в шаблоні, стає вReport Inspectorсірою. Щоб додати секцію до шаблону, необхідно в контекстному меню вибрати «Add Band».
У шаблоні залишаємо лише секції Title, Column Header та Detail1.
Додавання поля, параметра, змінної
Для додавання поля до шаблону необхідно виділити елемент Fields в Report Inspector і вибрати в контекстному меню Add Field.

До елемента 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».

Для звіту вибираємо компоненти 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-шаблону для описаного на сторінці JasperReports прикладу наведено на наступному скріншоті.

Генерований на основі шаблону звіт можна побачити тут.
Продовження статті з розглядом угруповання та підсумовування даних, а також нумерації даних у секції можна побачити тут.
З прикладом налаштування JDBC у програмі iReport та формуванням JasperReport звіту можна познайомитись тут.