Учебное пособие по JasperReports: для чего нужен JasperReports? Java?
⚡ Умное резюме
JasperReports для Java Jaspersoft Studio — это система создания отчетов с открытым исходным кодом, которая преобразует данные приложений в документы с идеальной точностью до пикселя. В этой статье описывается жизненный цикл создания отчетов, установка Jaspersoft Studio, создание шаблонов отчетов, структура полос, сравнение с Pentaho, а также практические ограничения, с которыми сталкиваются команды.

Для чего нужен JasperReports Java?
ДжасперРепортс это инструмент отчетности с открытым исходным кодом для Java Этот инструмент используется для создания отчетов о приложениях. Он помогает выводить расширенный контент на экран, на принтер или в различные файлы, такие как HTML, PDF, XLS, RTF, CSV, XML, ODT и TXT. JasperReports также можно использовать для Java-включенные приложения, такие как Java EE или веб-приложения для создания динамического контента.
В большинстве обсуждений три названия продуктов встречаются вместе, и их разделение на ранней стадии предотвратит путаницу в дальнейшем на этой странице.
| Имя | Что это такое? | Кто это использует? |
|---|---|---|
| Библиотека JasperReports | Java Библиотека, которая составляет, заполняет и экспортирует отчеты. | Java разработчики встраивают отчеты в приложение |
| Студия Jaspersoft | Eclipse дизайнер визуальных решений, создающий JRXML-файлы. | Отчеты проектировщиков о планировке зданий |
| Сервер JasperReports | Автономный сервер, который хранит, планирует и доставляет отчеты. | Команды, распространяющие отчеты среди бизнес-пользователей. |
Эта страница посвящена библиотеке и Jaspersoft Studio, поскольку для создания и запуска первого отчета достаточно этих двух компонентов. Обратите внимание, что в версии Community Edition теперь доступны только эти два компонента, так как JasperReports Server больше не предлагается для скачивания в рамках Community Edition.
Зачем использовать отчеты Jasper?
Вот множество причин для использования инструмента Jasper Reports:
- Он обеспечивает производительность создания отчетов и их доставку пользователям.
- Это поможет вам представить ваши данные в текстовом или графическом формате.
- Это автономный встроенный сервер отчетов для составления и выполнения отчетов.
- Он обеспечивает управление доступом на основе ролей ко всем отчетам в репозитории.
- Для интеграции с внутренними системами аутентификации доступен фреймворк Spring Security.
- Он предлагает защищенный, запланированный и автоматически предоставляемый механизм интерактивной отчетности.
- Вы можете вставлять отчеты в Java или неJava приложений.
- Возможен экспорт различных форматов отчетов.
- Он может создавать водяные знаки, накладываемые поверх основного изображения.
- Он предлагает полный набор SOAP-, REST и веб-службы.
- Это позволяет использовать данные одного отчета из нескольких источников данных.
Поскольку библиотека распространяется под лицензией LGPL, её можно включать в коммерческие продукты без платы за каждое рабочее место, что и является причиной многих проблем. Java Команды выбирают его вместо собственных механизмов формирования отчетов.
Возможности отчетов Jasper
Теперь мы рассмотрим возможности JasperReports.
Вот основные функции инструмента Jasper Reports:
- Предлагает гибкую компоновку отчетов по полосам, столбцам и произвольным областям.
- Разработчики могут предоставлять данные различными способами, в том числе: JavaКоллекции компонентов, SQL-запросы и XML-документы.
- В рамках одного отчета можно объединить несколько источников данных с помощью вложенных отчетов и адаптеров данных.
- На основное изображение также можно наносить водяные знаки.
- Вы можете создавать вложенные отчеты, которые будут находиться внутри родительского макета.
- Это поможет вам экспортировать отчеты в различные форматы, такие как PDFHTML, RTF и Microsoft файлы Excel.
- Данный механизм позволяет включать в определения отчетов диаграммы, такие как столбчатые, круговые, линейные и временные ряды.
- Выражения для отчетов можно записывать в Java, Groovy или JavaСценарий.
Эти возможности реализуются посредством фиксированной последовательности обработки, которая в следующем разделе описывается поэтапно.
Жизненный цикл JasperReports
Теперь мы изучим жизненный цикл JasperReports.
Ниже представлена общая схема жизненного цикла Jasper Reports:
На приведенной выше диаграмме последовательно показаны четыре этапа. На каждом этапе создается файл, который становится входными данными для следующего этапа, поэтому последовательность никогда не может быть обращена вспять.
| Этап | вход | Результат | Расширение файла |
|---|---|---|---|
| Проектирование | Решения по компоновке | Шаблон отчета | .jrxml |
| составление | файл .jrxml | Скомпилированный бинарный шаблон | .Джаспер |
| проведение | Файл .jasper плюс данные | Заполненный отчет | .jrprint |
| Экспорт | файл .jrprint | Окончательный документ | .pdf, .html, .xls и другие |
Разработка отчета
На первом этапе мы создадим JRXML-файл. Это простой XML-документ, определяющий структуру отчета. Вы можете создать этот файл, используя любой текстовый редактор или конструктор отчетов.
Однако, если вы используете конструктор отчетов, мы можем визуализировать структуру отчета, и реальную структуру JRXML можно игнорировать.
Составление отчета
На этом этапе жизненного цикла компилируется JRXML-файл, созданный на первом этапе, и генерируется бинарный объект, называемый файлом Jasper (файл с расширением jasper).
Эта компиляция сделана для повышения производительности во время выполнения. Эти сгенерированные файлы Jasper следует поставлять вместе с вашим приложением для запуска отчетов.
Выполнение отчета
На этом этапе данные из приложения собираются и заполняются в формате скомпилированного отчета. Существует класс net.sf.jasperreports.engine.JasperFillManager, который предлагает функции для заполнения данных в отчетах.
Результат будет сохранен в файл Jasperprint (файл с расширением jrprint), который можно использовать для печати или экспорта отчета.
Экспорт отчета в нужный формат
На последнем этапе вам необходимо экспортировать созданный ранее файл печати Jasper в любой формат с помощью класса JasperExportManager. Поскольку Jasper предлагает несколько форматов экспорта, мы можем использовать одни и те же входные данные для создания различных представлений данных.
Как установить Jasper Reports — настройка среды
Теперь давайте рассмотрим пошаговый процесс настройки среды JasperReports. Приведенные ниже скриншоты были сделаны с помощью установщика версии 6.9. Текущая версия для сообщества — 6.21.3, опубликованная 23 апреля 2024 года, и последовательность скриншотов осталась неизменной, хотя номер версии в имени файла отличается.
Шаг 1) Загрузите версию сообщества Jasper Reports
Перейти к этому Ссылка и нажмите на кнопку «Загрузить сейчас», чтобы установить Jasper Reports Community Edition.
Шаг 2) Выберите Jaspersoft Studio CE
В разделе "Доступные версии" выберите Jaspersoft Studio CE.
Шаг 3) Скачать Jaspersoft Studio
Перейти к этому ссылка. и нажмите кнопку «Загрузить», затем откройте загруженный исполняемый файл установщика для вашей операционной системы.
Шаг 4) Нажмите кнопку «Согласен».
Появится следующий экран. Нажмите кнопку «Я согласен».
Шаг 5) Выберите место
Выберите место установки и нажмите кнопку «Далее».
Шаг 6) Прогресс идет сейчас
Вы увидите прогресс на следующем экране.
Шаг 7) Нажмите на кнопку "Готово"
На следующем экране нажмите кнопку «Готово».
Шаг 8) Прогресс завершен
В вашем окне появится следующий экран.
Шаг 9) Свяжитесь с нами
Далее нажмите на кнопку «Начать».
Шаг 10) Начните работать со студией Jasper Reports
На следующем экране вы сможете начать работу с Jasper Reports Studio.
💡 Совет: Jaspersoft Studio — это Eclipse базовое приложение и требует совместимого Java На компьютере должна быть установлена среда выполнения. Если установщик не запускается, перед переустановкой убедитесь в установленной версии JDK.
Пример создания шаблона отчета
Теперь давайте научимся создавать шаблоны отчетов в JasperReports.
Файл шаблона отчета, используемый в JasperReports, представляет собой простой XML-файл с расширением jrxml. Этот файл содержит тег jasperReport в качестве своего корневого элемента. Фреймворк JasperReports может обрабатывать различные типы источников данных.
Шаблон отчета разрабатывается и создается с помощью следующих шагов.
Шаг 1) Создание файла JRXML в Jaspersoft Studio.
- Перейдите в меню «Файл».
- Выберите подменю «Создать».
- Нажмите на опцию «Отчет Jasper».
Шаг 2) Выбор нужного шаблона.
- Выберите свой шаблон, например, вишня.
- Нажмите на кнопку «Далее».
Шаг 3) Выбор родительской папки.
- Выберите папку «Мои отчеты».
- Введите имя файла, например «Отчет Cherry».
- Нажмите на кнопку «Далее».
Шаг 4) В окне «Источник данных» нажмите кнопку «Создать», чтобы создать новый адаптер данных.
Шаг 5) Выбор адаптера данных.
- Выберите адаптер данных из списка. Например, «Коллекция JavaБобы."
- Нажмите на кнопку «Далее».
Шаг 6) Ввод данных об адаптере и выбор заводского класса.
- Введите имя вашего адаптера.
- Выберите класс фабрики, нажав на кнопку «…».
Шаг 7) Ввод префикса или шаблона.
- Введите префикс или шаблон имени.
- Нажмите соответствующие элементы.
- Щелкните по кнопке «ОК».
Шаг 8) Определение класса фабрики и добавление пути к JAR-файлам.
- Введите имя статического метода в фабричном классе. В этом примере отчета Jasper это createBeanCollection.
- Если ваш JavaВ определении компонентов (Beans) есть описания полей, и если вы хотите использовать их в качестве имен в Jaspersoft Studio, установите флажок «Использовать описание поля».
- Добавьте путь к вашим файлам jar.
- Щелкните по кнопке «Готово».
Шаг 9) Нажмите на кнопку «Далее».
Шаг 10) Поздравляем! Вы успешно добавили всю необходимую информацию для создания отчета. Нажмите кнопку «Готово».
Отчет будет сгенерирован, как показано на скриншоте ниже.
Для компиляции указанного выше файла требуется его преобразование в бинарный формат JasperReport, который называется файлом Jasper.
Интерфейс net.sf.jasperreports.engine.design.JRCompiler, входящий в состав библиотеки JasperReports, играет важную роль в компиляции этого файла шаблона отчета.
Реализация этого интерфейса может быть написана на Java, JavaСценарий, Groovyили любой другой язык сценариев.
Компиляцию JRXML-файла можно выполнить двумя следующими способами:
- Программная компиляция из Java код.
- Компиляция с использованием Апачский муравей Задача.
Приведённый ниже фрагмент кода демонстрирует программный подход, где одна строка компилирует шаблон, а вторая заполняет его данными. JavaКоллекция бобов.
import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class ReportRunner { public static void main(String[] args) throws JRException { // 1. Compile the JRXML template into a .jasper file JasperReport report = JasperCompileManager.compileReport("CherryReport.jrxml"); // 2. Fill the compiled template with a collection of beans JRBeanCollectionDataSource source = new JRBeanCollectionDataSource(EmployeeFactory.createBeanCollection()); JasperPrint print = JasperFillManager.fillReport(report, null, source); // 3. Export the filled report to PDF JasperExportManager.exportReportToPdfFile(print, "CherryReport.pdf"); System.out.println("Report exported successfully"); } }
Выход:
Report exported successfully
Понимание различных категорий отчетов
Макет в JasperReports разделен на горизонтальные секции, называемые полосами. Каждая полоса имеет фиксированную линию печати, и понимание этих правил позволяет дизайнеру точно контролировать, где значение отображается в готовом документе.
Ниже приведены стандартные диапазоны значений, используемые большинством коммерческих инструментов для создания отчетов.
- Название
- Заголовок страницы
- Заголовок столбца
- XNUMX
- Нижний колонтитул столбца
- Нижний колонтитул страницы
- Нижний колонтитул последней страницы
- Резюме
- Заголовок группы
- Нижний колонтитул группы
- Предыстория
- Нет данных
Давайте подробно рассмотрим каждый отчетный диапазон.
Название
Эта полоса отображается в начале отчета. Ее можно разместить на отдельной первой странице, задав соответствующий атрибут. isTitleNewPage="true".
Заголовок страницы
Верхняя полоса заголовка страницы отображается в начале каждой страницы. Она исключает первую страницу, если используется полоса заголовка, и последнюю страницу, если используется полоса аннотации с соответствующей настройкой. isSummaryWithPageHeaderAndFooter="false".
Заголовок столбца
Заголовки столбцов отображаются перед полосой сведений на каждой странице.
XNUMX
Раздел с подробными данными обрабатывается для каждой записи в предоставленном источнике данных. Допускается наличие нескольких диапазонов детализации (1, 2 и так далее).
Нижний колонтитул
Этот раздел отображается под полосой с подробной информацией на каждой странице, где эта полоса присутствует. По умолчанию он располагается в конце страницы, но это можно изменить, чтобы он находился под последней полосой с подробной информацией, задав соответствующий атрибут. isFloatColumnFooter="true".
Нижний колонтитул страницы
Этот раздел будет отображаться в конце каждой страницы, за исключением сводной полосы, полосы заголовка и последней полосы, не содержащей сводной информации.
Нижний колонтитул последней страницы
Этот раздел размещается на последней странице вместо обычного нижнего колонтитула, если не указана сводная таблица.
Резюме
Раздел с кратким изложением появляется в конце отчета на новой странице только в том случае, если... isSummaryNewPage="true" установлено, и с заголовком и нижним колонтитулом страницы, когда isSummaryWithPageHeaderAndFooter="true" установлен.
Заголовок группы
Этот раздел появляется только тогда, когда он определен, каждый раз при изменении группового выражения, перед полосой детализации.
Нижний колонтитул группы
Этот раздел отображается только в том случае, если группа определена, каждый раз перед изменением выражения группы, после полосы детализации.
Предыстория
Он отображается на всех страницах в качестве фона для всех остальных разделов отчета.
Нет данных
Эта полоса появится, если источник данных не был передан или источник данных пуст. whenNoDataType="NoDataSection" установлен.
Джаспер против Пентахо
Теперь мы узнаем о разнице между яспером и пентахо.
Вот основные различия между Джаспером и Пентахо:
| Параметры | Jasper | Pentaho |
|---|---|---|
| Согласно отчетам | Для создания отчетов Jasper использует Jaspersoft Studio. | В нем используется конструктор отчетов Pentaho. |
| ETL-поддержка | Компания Jaspersoft использует версию Talend Open Studio для выполнения ETL-процессов. | По умолчанию используется Pentaho Data Integrator. Инструмент ETL. |
| Главная | Функционал панели мониторинга доступен только в корпоративной версии Jaspersoft. | Pentaho предлагает широкий спектр функций в своих панелях управления. |
| Мобильная бизнес-аналитика | Компания Jaspersoft обладает лучшей поддержкой мобильной бизнес-аналитики. | Для улучшения работы мобильной бизнес-аналитики Pentaho необходимо использовать сторонний инструмент. |
| Документация | Лучший маркетинг, сайты и документация. | Документационная поддержка плохая. |
| лучшая особенность | Легче изучить и найти то, что вам нужно. | Предлагает функции анализа данных и интеграцию с iPhone. |
| Платная версия | Платная версия предлагает такие функции, как специальный запрос Веб-интерфейс и веб-интерфейс для создания панелей управления. | Предлагает такие функции, как интеграция с LDAP, единый вход (SSO) и аудит. |
Команды, уже инвестировавшие в Java Обычно команды, которым требуется интенсивная интеграция данных наряду с составлением отчетов, выбирают Jasper, в то время как другие команды часто выбирают именно его. Pentaho.
Проблемы, с которыми пришлось столкнуться при создании JasperReports
Вот несколько трудностей, с которыми вы столкнетесь при создании отчетов Jasper Reports:
- Изменения в основной логике — при изменении или усовершенствовании бизнес-правил требуется изменить основную логику отчета.
- Сложные отчеты – подотчеты и перекрестные таблицы являются хорошими примерами.
- Диаграммы и отчеты, или визуальные диаграммы, например, графики, линейные диаграммы XY, круговые диаграммы, столбчатые диаграммы, диаграммы временных рядов и измерительные диаграммы.
Недостатки использования Jasper Reports
Вот недостатки использования Jasper Reports.
- Как только вы начнете вносить какие-либо изменения в отдельные части пакета и удалять функции, вернуться к настройкам пакета по умолчанию будет очень сложно.
- Он слишком жёсткий, и редактирование строк и создание перекрестных таблиц представляют собой сложную задачу.
- Некоторые распространенные задачи, например, указание промежуточных итогов для сгруппированного отчета, проще выполнять в других конструкторах отчетов.
- Джаспер требует, чтобы вы составляли отчеты перед их запуском. Это означает, что разработчики отчетов должны обладать всей Java SDK установлен.
- Иногда при редактировании отчета он не отображается в том же предварительном просмотре, который отображается в Интернете.






















