Как создать jasper файл

Обновлено: 06.07.2024

Всем привет! В этой статье мы хотим рассказать о том, каким образом мы в платформе "Юнидата" формируем отчетность. Любая работа с данными неизбежно ведет к построению специализированных отчетов, в которых пользователи могут эффективно эти данные обрабатывать и принимать на их основе бизнес-решения.

Как выбирали систему построения отчетности

Создавать модуль построения отчетов в платформе – задача нетривиальная и дорогостоящая, поэтому возникла необходимость поиска подходящего инструментария для построения отчетов. Главными нашими критериями были:

Бесплатное использование ПО в коммерческих проектах с открытым исходным кодом

Инструмент для построения данных должен работать с основными форматами источников данных, а так же напрямую БД.

Использование языка Java для построения отчетов

ПО должно быть поддерживаемым и обновляемым c поддержкой обратной совместимости

Редактор построения отчетов должен быть удобным и понятным

Инструмент должен позволять создавать шаблоны отчетов всех основных форматов: excel, csv, pdf, html, и т.д

Богатые возможности визуализации и построения дашбордов.

Мы провели исследование части наиболее известных open-source систем построения отчетов, и результаты нашего исследование мы собрали в таблицу, которой хотим поделиться.

Наименование

Производитель

Лицензия

Возможности и достоинства

Недостатки

The Business Intelligence and Reporting Tools (BIRT)

Eclipse Public License

Последняя версия 4.5.0 (Июнь 24, 2015) т.е. проект живой;

Есть визуальный редактор отчетов в среде разработки Eclipse IDE;

Сконструированные отчеты BIRT сохраняются в XML и имеют доступ к целому ряду различных источников данных, включая хранилище данных JDO, JFire, Plain Old Java Object, SQL, database, Web Service и XML;

Содержит технологию построения графиков, которая полностью интегрирована в дизайнер отчетов и может использоваться автономно для интеграции графиков в приложение;

Сырой и неудобный редактор;

Ставится отдельным web-приложением;

Для использования необходим Eclipse;

Отчеты, созданные в разных версиях несовместимы;

GNU Lesser General Public License

Последняя версия 6.2.2 (6 мая 2016 года)отчёты могут выводиться на экран, принтер, либо в форматы PDF, RTF,HTML, XLS, CSV и XML;

Использование динамических языков JavaScript и Groovy при реализации логики отчета;

Реализация диаграмм (charts) на основе библиотеки JFreeChart;

Реализация подотчётов (subreports) с неограниченной глубиной вложенности;

Реализация кросстаблиц (crosstabs);

Pentaho Reporting JFreeReport

Pentaho Community Edition (CE): Apache version 2.x; Pentaho Enterprise Edition (EE): Commercial License

Гибкое позиционирование элементов дашборда на макете;

Развитые инструменты визуализации отчетов;

Возможность вывода отчетов в форматах HTML, Excel, csv, xml, PDF, текстовых форматах;

Мало информации о применении;

Все основные фичи реализованы в коммерческой версии от Hitachi Group Company;

Apache 2.0 License

Генерировать отчет в формате шаблона или конвертировать результат в PDF;

Создавать шаблоны отчетов в привычных и распространенных форматах: DOC, ODT, XLS, DOCX,XLSX, HTML;

Создавать сложные XLS и XLSX шаблоны: с вложенными областями данных, графиками, формулами и т.д.;

Использовать в отчетах изображения и HTML-разметку;

Хранить структуру отчетов в формате XML;

Запускать standalone приложение для генерации отчетов, что делает возможным использование библиотеки вне Java-экосистемы (например для генерации отчетов в PHP);

Интегрироваться с IoC-фреймворками (Spring, Guice).

Нет внятного редактора;

Есть UI, который предоставляет платформа CUBA;

Взаимодействие клиент-сервер с Jasper reports

Мы полагаем, что может быть интересным то, как именно мы встраиваем jasper отчеты непосредственно в платформу без лишних запросов к Jasper Server. JasperReports Server – это основной компонент системы. Его задача - хранить отчеты, которые будут встраиваться в платформу, а так же предоставлять возможность просмотра отчетов напрямую через специальный интерфейс. Вот пример как это выглядит в платформе


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


Проксировщик получает на вход некий URL отчета, который собирается из параметров на клиенте. По этому URL происходит авторизация в jasperServer, далее проксировщик достает из куки session_id и уже по нему запрашивает ответ непосредственно самого отчета. Ответ от jasper приходит виде html-страницы. Именно эту html-страницу мы передаем в iframe для отрисовки на клиенте, а не url, как это обычно бывает. Таким образом мы один раз запрашиваем отчет, далее вся работа с ним идет уже непосредственно на клиенте платформы.

Подкладываем html страницу от Jasper Server

generateReportUrl - метод, который генерирует URL с нужными параметрами для отчета и session_id.

Cоздание отчета в JasperReports

Далее поговорим про непосредственно создание отчетов и дашбордов в Jasper. Создание jasper отчета состоит из набора визуализаций, скомпонованных на едином макете: Для создания макета отчета мы используем визуальный редактор JasperSoft Studio, который может быть отдельным приложением или плагином для eclipse. Подробнее об этом инструменте можно легко найти информацию в документации и открытых источниках, Нам же важно выделить то, что в данном редакторе достаточно легко можно построить дашборд, а сам редактор достаточно удобен и понятен. Достаточно выбрать нужные визуализации, перетащить их на макет, заполнить параметры и функциональные элементы. Построение дашбордов не требует навыков программирования и каждый может разобраться с ними в достаточно короткое время. Ниже пример простого отчета в JasperStudio.


После того, как создали макет отчета, переходим к построению логики самого отчета. Jasper отчет представляет xml-файл в специальном формате jrxml. Структура jrxml файла условно можно поделить на три части: в первой части определяются параметры отчета, во второй части пишется запрос к данным, в третьей части описываются функциональные блоки макета, в которых происходит обработка результатов запроса и отображение данных в макете.

Начало структуры файла: пример параметров отчета

Далее предположим, что источником данных является во второй части после параметров пишем SQL-запрос

Стоит обратить внимание, что в запросе мы используем параметры $P, которые динамически приходят от клиента, что так же является фишкой Jasper.

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

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

Ключевым вопросом в построении отчета является передача параметров (фильтров) отчета от клиента на сервер. Для того, чтобы не отправлять пользователя на JasperServer и все параметры отчета заполнять в платформе удобным способом, Jasper предлагает использовать собственный REST API. Наличие такого мощного API было решающим аргументом в сторону выбора JasperSoft для автоматизации отчетности. Вместо того, чтобы создавать ресурсы и заполнять параметры в среде Jasper Server мы просто воспользуемся методами, которое предоставляет нам API и передадим параметры GET-запросом от клиента. API jasper позволяет не только параметризировать данные, используемые в отчетах, но и сами отчеты, что позволяет очень гибко отображать нужные дашборды

Итого

Резюмируя все выше описанное мы рекомендуем к использованию JasperSoft когда есть потребность в создании гибких отчетов согласно шаблонам заказчика. Для этого Jasper предоставляет весь необходимый инструментарий, а работать в ним достаточно просто и удобно.

Быстро освоить JasperReport-шаблон инструмента Jaspersoft Studio

5.1 Обзор

Jaspersoft Studio - это конструктор отчетов на основе Eclipse для библиотеки JasperReports и сервера JasperReports, который можно использовать как плагин Eclipse или как отдельное приложение. Jaspersoft Studio позволяет создавать сложные макеты, включая диаграммы, изображения, подотчеты, кросс-таблицы и т. Д. Вы можете получить доступ к данным через различные источники, такие как JDBC, TableModels, JavaBeans, XML, Hibernate, большие данные (например, Hive), CSV, XML / A и пользовательские источники, а затем опубликовать отчет в формате PDF, RTF, XML, XLS, CSV. , HTML, XHTML, текст, DOCX или OpenOffice.

Jaspersoft Studio - это инструмент визуального проектирования отчетов. С помощью этого программного обеспечения вы можете легко создавать отчеты визуально. Результатом разработки является файл XML в формате .jrxml, а файл .jrxml может быть скомпилирован в файл формата .jasper для удобного анализа с помощью механизма отчетов JasperReport. , дисплей.

5.2 Установка и настройка

5.3 Введение в панель


  1. Report editing area (Основная область редактирования), вы интуитивно перетаскиваете, позиционируете, выравниваете и передаете Designer palette (Дизайнерская палитра) Изменение размера элементов отчета. JasperSoft Studio Есть редактор с несколькими вкладками, Design,Source И предварительный просмотр:
  2. Design tab: Когда вы открываете файл отчета, он позволяет вам создать отчет, выбранный графически
  3. Source tabСодержит исходный код JRXML для отчетов.
  4. Preview tab: Разрешить запуск предварительного просмотра отчета после выбора источника данных и формата вывода.
  5. Repository Explorer view: Содержит список подключений и доступных адаптеров данных, сгенерированных JasperServer
  6. Project Explorer view: Содержит список проектов JasperReports
  7. Outline view: Показывает полную структуру отчета в виде дерева в виде структуры.
  8. Properties viewОбычно одна из основ любого продукта / плагина на основе Eclipse. Обычно он заполняется информацией об атрибутах фактически выбранного элемента. Вот как это происходит, когда вы выбираете элемент отчета из основной области дизайна (т. Е. Из текстового поля) или из структуры, представление отображает свою информацию. Некоторые из этих свойств могут быть доступны только для чтения, но большинство из них доступны для редактирования. Их изменение обычно информирует вас об изменении нарисованного элемента (например, ширины или высоты элемента).
  9. Problems view: Отображаемые проблемы и ошибки, например, могут помешать правильному составлению отчетов.
  10. Report state summary Предоставляет полезную информацию для пользователей в статистике составления / заполнения / выполнения отчетов. Ошибка будет отображаться здесь

5.4 Основное использование

5.4.1 Создание шаблонов


(1) Откройте Jaspersoft Studio и создайте новый проект, шаги: Файл -> Новый -> Проект-> Проект JasperReports

(2) Создать новый Jasper Report Шаблон, найдите недавно созданный проект (DemoReport, который я создал здесь) в Project Explorer в левом нижнем углу Stidio, шаги: Щелкните правой кнопкой мыши по проекту -> Новый -> Jasper Report.


(3) Выберите Пустой A4 (шаблон формата бумаги A4), а затем назовите его DemoReport1.jrxml.

Как показано на рисунке, шаблон отчета размещен по вертикали, каждая часть является полосой, и каждая полоса имеет разные характеристики:

  1. заглавие: Отображается только в верхней части первой страницы всего отчета. Отображается только на первой странице, другие страницы не отображаются.
  2. Заголовок страницы: Он будет отображаться на каждой странице всего отчета. На первой странице появляется позиция под заголовком. На других страницах, кроме первой, содержимое заголовка страницы отображается в верхней части страницы.
  3. Нижний колонтитул страницы: Он будет отображаться на каждой странице всего отчета. Отображается внизу страницы. Обычно используется для отображения номеров страниц.
  4. Деталь 1 (деталь): Содержание отчета, которое будет отображаться на каждой странице.
  5. Заголовок столбца: Если то, что напечатано в Detail, является таблицей, этот заголовок столбца является заголовком столбца столбца в таблице.
  6. Нижний колонтитул: Если таблица печатается в деталях, нижний колонтитул столбца является нижним колонтитулом столбца в таблице.
  7. Сводные статистические данные): Общий раздел таблицы отображается на последней странице всего отчета после Детального фрагмента 1. В основном используется для полного отображения отчетов.

5.4.2 Шаблон компиляции


Щелкните правой кнопкой мыши автономный файл шаблона -> скомпилировать отчет, чтобы скомпилировать шаблон и создать файл .jasper.

5.4.3 Интеграционный проект

(1) Недавно построенный проект SpringBoot для представления координат

(2) Импорт файлов конфигурации

(3) Создайте класс запуска

(4) Импортируйте сгенерированный файл .jasper
(5) Создать тестовый контроллер

5.4.4 Китайская обработка


(1) Китайский стиль должен быть указан на этапе проектирования

(2) Решите нереалистичный китайский язык, указав китайский шрифт вручную

  1. Добавьте файл свойств:
  1. Укажите китайский файл конфигурации fonts.xml
  1. Введите библиотеку шрифтов stsong.TTF

Интеллектуальная рекомендация


WECHAT MILLY WAY POINT CAMENT CARD - СОВРЕМЕННЫЕ СТРАНИЦЫ ПРОГЛЯЮТНОЕ ЗНАЧЕНИЕ (Запрос)

WECHAT Small Pass Pass Value и значение приобретения: 1. Установите способ настройки идентификатора идентифицирует значение параметра, передаваемое после прыжка; 2, используя метод Data-XXXX для идент.


Текущая задача Узел больше экземпляров


[Linux] Программирование сетевых сокетов UDP

Что такое протокол UDP Протокол UDP называетсяПротокол пользовательских датаграмм UDP - протокол транспортного уровня Без установления соединения, ненадежная передача, ориентированная на дейтаграмму П.



Основная идея обработки больших данных - разделяй и властвуй

Разделяй и властвуй - «разделяй и властвуй» Как мы все знаем, компьютеры очень быстрые и используются людьми. Однако независимо от того, насколько быстрым является компьютер, способность о.

JasperReports — это технология и соответствующая Java-библиотека построения отчётов, которые могут быть использованы для создания отчётов в Платформе НЕЙРОСС. Средства JasperReports позволяют получать данные из различных источников (в том числе реляционных СУБД), фильтровать их, преобразовывать и формировать на выходе документы в форматах PDF, HTML, Microsoft Excel и многих других. Генерация отчёта осуществляется на основе одного или нескольких XML-шаблонов, в которых можно определить все аспекты формирования документа — от запроса к источнику данных до структуры и внешнего вида конечного документа.

JasperReports относится к классу свободного программного обеспечения и распространяется под свободной лицензией GNU Lesser General Public License, что позволяет свободно использовать JasperReports в коммерческих продуктах.

Редактирование и отладку шаблонов JasperReports можно осуществлять в бесплатной программе Jaspersoft Studio. Программа позволяет редактировать, настраивать и тестировать шаблон в визуальном редакторе. На текущий момент для разработки шаблонов для Платформы НЕЙРОСС мы рекомендуем использовать Jaspersoft Studio версии 6.3.0. Все версии Jaspersoft Studio доступны для загрузки на официальном сайте.


Внешний вид визуального редактора Jaspersoft Studio.

Основные сведения

Шаблон отчёта в JasperReports — это файл .jrxml в XML-формате, в котором хранится структура отчёта, его дизайн и логика.

Параметры — это входные аргументы. Их значения неизменны во всём отчёте. Например, при формировании отчёта по записям в базе данных за некоторое время, дата / время начала и конца данного временного интервала могут быть переданы в шаблон в форме параметров.

Источник данных — это подключение к реляционной базе, XML-файл или другой источник, из которого в соответствии с заданными критериями формируется набор данных. В случае реляционной базы набор данных выбирается из базы данных в соответствии с SQL-запросом, определённом в шаблоне отчёта.

Набор данных — это коллекция записей, каждая из которых представляет собой набор полей. Например, в случае реляционной базы записи и поля — это строки и значения колонок таблиц базы данных, выбираемые в соответствии с SQL-запросом.

Поле — это именованное значение из набора данных. В случае реляционной базы данных соответствует значению некоторой колонки. Список используемых из набора данных полей также определяется в шаблоне в разделе Fields.

Если нужно вывести в отчёте номер страницы, номер записи, количество записей и т.д., можно использовать переменные.

Переменная — это вычисляемое в процессе формирования отчёта значение. Доступно большое количество стандартных переменных, таких как номер страницы, но разработчик шаблона также может создать свои переменные.





На изображениях выше показан редактор SQL-запроса для формирования набора данных и списки параметров, полей и переменных.

Отчёты состоят из секций, которые также называются bands (полосы). Секции следуют одна за другой строго по вертикали. Каждая секция принадлежит к определённому типу, который влияет на её отображение в отчёте:

СекцияОписание и назначение
TitleПрисутствует только в начале отчёта
Page HeaderВыводится вверху каждой страницы
Column HeaderВыводится в начале столбца отчёта
(секции Detail могут выводиться на странице в несколько столбцов)
DetailВыводится для каждой записи в источнике данных
Column FooterВыводится в конце столбца отчёта
Page FooterВыводится внизу каждой страницы
Last Page FooterПрисутствует только внизу последней страницы (вместо Page Footer)
SummaryПрисутствует только в самом конце отчёта
No DataВыводится вместо всех остальных секций, если источник данных не содержит записей
BackgroundВыводится на заднем плане каждой страницы

Кроме того, записи в наборе данных делить на группы в соответствии с заданными критериями. Тогда перед и после каждой группы можно выводить дополнительные секции:

СекцияОписание и назначение
Group HeaderВыводится перед каждой новой группой
Group FooterВыводится после каждой группы

Не все секции необходимо использовать в шаблоне. Ненужные секции можно удалить (отключить) — тогда они не будут участвовать в формировании документа.

Секции подписаны и разделяются серыми горизонтальными линиями на листе отчёта. Список секций также выводится в панели Outline (серым цветом подписаны удалённые секции).



Для вывода текста в отчётах используются два основных компонента: Text Field (динамическое поле) и Static Text (статическое поле). Динамическое поле используется для вывода значений параметров или полей набора данных, а статическое — для вывода постоянного текста (например, заголовков колонок).


На изображении выше выбран элемент Text Field, в котором в секции Details выводится значение поля message_time (время события) для строк из базы данных.

В элементах типа Text Field можно выводить результаты сложных выражений, написанных на языке Java. Так, для вывода текста события в примере выше события используется следующее выражение:


При формировании выражений можно использовать все возможности Java, значения параметров, полей и переменных.


На рисунке выше переменная PAGE_NUMBER используется для вывода номера текущей страницы.

Возможности оформления

Итак, вёрстка шаблона отчёта заключается в расположении различных элементов — полей вывода текста, геометрических фигур, изображений и др. — в соответствующих секциях. Помимо непосредственного позиционирования таких элементов на листе и наполнения их данными разработчик шаблона может достаточно гибко настраивать внешний вид этих элементов. Рассмотрим возможности по изменения внешнего вида на примере текстового поля (Text Field).


Настройка элементов осуществляется в панели Properties:


На вкладке Apperance можно настроить точное местоположение и размер элемента, задать основной цвет элемента и цвет фона, указать когда выводить / скрывать элемент и другие параметры.


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


Для текста, выводимого в отчёте с помощью элементов Text Field и Static Text, можно задавать цвет, размер, начертание (жирное, курсив, с подчеркиванием), шрифт, выравнивание текста в блоке по горизонтали и вертикали, а также всевозможные отступы. Более того, текст можно выводить с поворотом на 90, 180 и 270 градусов.


Если размер элемента заранее неизвестен (например, размер текстового поля должен зависеть от объёма текста, полученного из источника данных), то можно настроить относительное позиционирование элементов в секции:


а) либо с помощью выбора правила расположения (layout): элементы располагаются последовательно по вертикали / по горизонтали / в форме таблицы X на Y:


б) либо с помощью привязки элемента к границам секции / границам других элементов:

Наконец, для того, чтобы документ отчёта соответствовал требуемому формату бумаги, например, А4, можно настраивать размер, ориентацию и поля страницы отчёта:


Подотчёты

Достаточно часто нет возможности получить все необходимые данные из источника с помощью одного запроса. Или бывает так, что в отчёт необходимо включить данные из нескольких наборов. Например, в отчёт типа «Досье по пропуску» в самом начале отчёта требуется вывести подробную информацию о владельце пропуска, а далее в основной части отчёта отобразить таблицу событий доступа, связанных с данным пропуском.

В таких ситуациях на помощь приходит элемент Subreport, который позволяет встраивать один отчёт (подотчёт) в другой.


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

Подотчёт — это ещё один отчёт, который точно также можно редактировать и настраивать:


Компиляция и предпросмотр

JasperReports для генерации отчёта использует не *.jrxml XML-файлы с определением шаблонов, а скомпилированные из них *.jasper-файлы. В Jaspersoft Studio для компиляции шаблона необходимо вызвать соответствующую команду по кнопке на панели или в контекстном меню на *.jrxml-файле:



Компиляция шаблона также выполняется автоматически при попытке предпросмотра отчёта:


Механизм предпросмотра позволяет проверить корректность составления шаблона отчёта, запроса к источнику данных и оценить получившийся внешний вид отчёта.

В окне предпросмотра формирование отчёта осуществляется по выбранному источнику данных. Разработчик может добавить нужный ему источник данных (например, подключение к реляционной базе данных) в соответствующем разделе:


Заключение

На этом краткое руководство кончается.

Дополнительную информацию по использованию JasperReports и Jaspersoft Studio можно почерпнуть в разделе документации на официальном сайте сообщества.


Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

1- Установка требует

Для программирования отчета Jasperreport вам нужно установить Jaspersoft Studio в Eclipse. Вы можете посмотреть руководство по ссылке:

LearningSQL это малая databas, использующаяся во многих руководствах в o7planning.
Руководство программирования отчета JasperReport так же использует данные в этой Database. Вам нужно создать данную Database (Понадобится только 5 минут) по руководству ниже:

Драйвер библиотеки базы данных (Oracle, MySQL, SQLServer) и способ использования:

В зависимости от какой database вы используете, вам нужна библиотека для управления этой Databas (Java JDBC Driver) (Вам понадобится 3 минуты для выполнения), смотрите руководство скачивания по ссылке:

2- Интерфейс отчета смоделирует


В отчете, мы сгруппируем данные чтобы полчить резальтаты как в иллюстрации ниже:



3- Создать JasperReport Project







4- Создать Data Adaptor

Здесь я подключаю к базе данных Oracle. Вы можете сделать то же самое для MySQL или SQLServer, отличие только в использовании библиотеки & URL Connection String.



  • JDBC Url: jdbc:oracle:thin:@localhost:1521:db11g


Ошибка происходит если вы не объявили classpath Драйвера библиотаки данной базы данных.


Нужто только Add (добавить) местоположение файла jar, драйвер библиотеки для данной базы данных.

Читайте также: