Ефективне використання Jasper Report: Конкатенація рядків із піддатасету

Ефективне використання Jasper Report: Конкатенація рядків із піддатасету

3 Березня 2024 в 13:42 35

У сучасному світі візуалізація даних є одним із найважливіших аспектів в розробці програмного забезпечення. Jasper Report, як інструмент для створення звітів, надає можливість розробникам гнучко працювати з даними та представляти їх у вигляді зручних та зрозумілих звітів.

Одним із поширених завдань у створенні звітів є конкатенація рядків із піддатасету. Розглянемо цей процес докладніше із застосуванням Jasper Report та мови програмування Java.

Уявімо, що ми маємо джерело даних у вигляді JSON-об’єкта, де вказані учасники комітету з їхніми іменами:

Нам потрібно показати ці імена двома способами: в табличному вигляді (що є стандартним для Jasper Report) та у вигляді рядка з комами між іменами.

Щоб отримати рядок із піддатасету у вигляді “Ім’я Прізвище По-батькові, Ім’я1 Прізвище1 По-батькові1”, можна використати функцію конкатенації рядків. У Jasper Report це можна зробити за допомогою виразів у полі Text Field Expression або за допомогою Java-коду.

Перший спосіб – використати вирази. Для цього використаємо функцію join з бібліотеки Apache Commons для Java:

У цьому виразі ми спочатку перетворюємо піддатасет у потік (stream), потім витягуємо значення “name” для кожного елемента, а потім збираємо їх у рядок, розділений комами.

Інший спосіб – використати Java-код безпосередньо в звіті. Для цього створимо нове поле у звіті і додамо до нього наступний Java-код:

Після цього можна викликати цей метод у полі Text Field Expression:

Обидва способи дозволяють отримати рядок з піддатасету у вигляді, який вам потрібен, з використанням інструментів, доступних у Jasper Report та мові програмування Java.