Учебное пособие по JasperReports: для чего нужен JasperReports? Java?

⚡ Умное резюме

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

  • 📊 Основное определение: JasperReports — это Java Библиотека классов, которая отображает данные на экране, принтере, в форматах PDF, HTML, XLS, RTF, CSV, XML, ODT и TXT.
  • 🔄 Этапы жизненного цикла: Процесс состоит из четырех последовательных этапов: разработка JRXML-файла, его компиляция в файл .jasper, заполнение его данными и экспорт результата.
  • 🖥️ Среда проектирования: Jaspersoft Studio Community Edition предоставляет визуальный редактор, и текущая версия для сообщества — 6.21.3.
  • 🧩 Зонная структура: Заголовок, верхний колонтитул страницы, заголовок столбца, подробная информация, нижний колонтитул столбца, нижний колонтитул страницы и сводная информация определяют место печати каждого элемента.
  • ???? Гибкость данных: В одном отчете можно объединить JavaКоллекции компонентов, наборы результатов SQL-запросов, XML-файлы и пользовательские адаптеры данных.
  • Сравнение платформ: Компания Jaspersoft лидирует в области документирования и мобильной бизнес-аналитики, а Pentaho — в области информационных панелей и интеллектуального анализа данных.
  • ⚠️ Известное ограничение: Отчеты необходимо составить перед выполнением, поэтому каждому разработчику отчетов требуется полный пакет документов. Java SDK установлен.

Учебное пособие по JasperReports

Для чего нужен 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:

Жизненный цикл JasperReports

На приведенной выше диаграмме последовательно показаны четыре этапа. На каждом этапе создается файл, который становится входными данными для следующего этапа, поэтому последовательность никогда не может быть обращена вспять.

Этап вход Результат Расширение файла
Проектирование Решения по компоновке Шаблон отчета .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.

Установите Jasper Reports — Настройка среды

Шаг 2) Выберите Jaspersoft Studio CE
В разделе "Доступные версии" выберите Jaspersoft Studio CE.

Установите Jasper Reports — Настройка среды

Шаг 3) Скачать Jaspersoft Studio
Перейти к этому ссылка. и нажмите кнопку «Загрузить», затем откройте загруженный исполняемый файл установщика для вашей операционной системы.

Установите Jasper Reports — Настройка среды

Шаг 4) Нажмите кнопку «Согласен».
Появится следующий экран. Нажмите кнопку «Я согласен».

Установите Jasper Reports — Настройка среды

Шаг 5) Выберите место
Выберите место установки и нажмите кнопку «Далее».

Установите Jasper Reports — Настройка среды

Шаг 6) Прогресс идет сейчас
Вы увидите прогресс на следующем экране.

Установите Jasper Reports — Настройка среды

Шаг 7) Нажмите на кнопку "Готово"
На следующем экране нажмите кнопку «Готово».

Установите Jasper Reports — Настройка среды

Шаг 8) Прогресс завершен
В вашем окне появится следующий экран.

Установите Jasper Reports — Настройка среды

Шаг 9) Свяжитесь с нами
Далее нажмите на кнопку «Начать».

Установите Jasper Reports — Настройка среды

Шаг 10) Начните работать со студией Jasper Reports
На следующем экране вы сможете начать работу с Jasper Reports Studio.

Установите Jasper Reports — Настройка среды

💡 Совет: Jaspersoft Studio — это Eclipse базовое приложение и требует совместимого Java На компьютере должна быть установлена ​​среда выполнения. Если установщик не запускается, перед переустановкой убедитесь в установленной версии JDK.

Пример создания шаблона отчета

Теперь давайте научимся создавать шаблоны отчетов в JasperReports.

Файл шаблона отчета, используемый в JasperReports, представляет собой простой XML-файл с расширением jrxml. Этот файл содержит тег jasperReport в качестве своего корневого элемента. Фреймворк JasperReports может обрабатывать различные типы источников данных.

Шаблон отчета разрабатывается и создается с помощью следующих шагов.

Шаг 1) Создание файла JRXML в Jaspersoft Studio.

  1. Перейдите в меню «Файл».
  2. Выберите подменю «Создать».
  3. Нажмите на опцию «Отчет Jasper».

Пример создания шаблона отчета

Шаг 2) Выбор нужного шаблона.

  1. Выберите свой шаблон, например, вишня.
  2. Нажмите на кнопку «Далее».

Пример создания шаблона отчета

Шаг 3) Выбор родительской папки.

  1. Выберите папку «Мои отчеты».
  2. Введите имя файла, например «Отчет Cherry».
  3. Нажмите на кнопку «Далее».

Пример создания шаблона отчета

Шаг 4) В окне «Источник данных» нажмите кнопку «Создать», чтобы создать новый адаптер данных.

Пример создания шаблона отчета

Шаг 5) Выбор адаптера данных.

  1. Выберите адаптер данных из списка. Например, «Коллекция JavaБобы."
  2. Нажмите на кнопку «Далее».

Пример создания шаблона отчета

Шаг 6) Ввод данных об адаптере и выбор заводского класса.

  1. Введите имя вашего адаптера.
  2. Выберите класс фабрики, нажав на кнопку «…».

Пример создания шаблона отчета

Шаг 7) Ввод префикса или шаблона.

  1. Введите префикс или шаблон имени.
  2. Нажмите соответствующие элементы.
  3. Щелкните по кнопке «ОК».

Пример создания шаблона отчета

Шаг 8) Определение класса фабрики и добавление пути к JAR-файлам.

  1. Введите имя статического метода в фабричном классе. В этом примере отчета Jasper это createBeanCollection.
  2. Если ваш JavaВ определении компонентов (Beans) есть описания полей, и если вы хотите использовать их в качестве имен в Jaspersoft Studio, установите флажок «Использовать описание поля».
  3. Добавьте путь к вашим файлам jar.
  4. Щелкните по кнопке «Готово».

Пример создания шаблона отчета

Шаг 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 установлен.
  • Иногда при редактировании отчета он не отображается в том же предварительном просмотре, который отображается в Интернете.

Часто задаваемые вопросы (FAQ)

Файл .jrxml — это удобочитаемый XML-шаблон, который редактируют дизайнеры. Файл .jasper — это скомпилированный двоичный файл, созданный на его основе, и во время выполнения выполняется только скомпилированный файл.

Библиотека JasperReports и Jaspersoft Studio Community Edition распространяются под лицензией с открытым исходным кодом и могут быть встроены в коммерческие продукты. Для использования панелей мониторинга, планирования и функций безопасности требуется платная версия.

Да. Создайте JDBC-адаптер данных в Jaspersoft Studio, укажите JAR-файл драйвера и строку подключения, а затем напишите запрос внутри отчета. Параметры передаются с использованием символов доллара и фигурных скобок.

Да. Добавьте зависимость jasperreports, поместите скомпилированные файлы .jasper в classpath и вызовите JasperFillManager из класса сервиса. Экспортированные байты можно передавать напрямую в HTTP-ответ.

Искусственный интеллект может быстро создавать шаблоны JRXML и синтаксис выражений. Всегда открывайте сгенерированный файл в Jaspersoft Studio, поскольку высота полос и координаты элементов часто требуют ручной корректировки.

Он обрабатывает идеально точные операционные документы, которые не могут быть созданы панелями мониторинга ИИ, такие как счета-фактуры и выписки. Результаты работы модели записываются в базу данных, а Jasper обрабатывает их для распространения.

Подведем итог этой публикации следующим образом: