что такое jasper report

Немного советов по JasperReports для новичка

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

Им и было решено пользоваться.

Следующие несколько дней я прыгал и скакал вокруг компьютера, разве что не с бубном.

История
1. Что лучше качать.
Есть 2 основных способа скачать данную библиотеку, либо скачать только JAR файл и успокоится, либо качать проект с исходными кодами.
Я решил, что достаточно просто jar. Это было моей первой ошибкой, после пришлось качать кучу всего еще, еще где-то регистрироваться.
Качайте сразу исходники. Вместе с ними вы получите все необходимые библиотеки, даже те, которые по одиночке трудно найти и примеры использования библиотеки.

3. Картинки в HTML отчетах
Генерация отчетов с картинками сразу в HTML из сервлета – это отличная возможность JasperReports, но для подключения ее необходимо сделать некоторые телодвижения.
Мануалов по созданию просто HTML много, а вот с картинками – мало. Я опишу, что нужно добавить, чтобы картинки появились.

Нужно:
Прописать в web.xml новый сервлет:
ImageServlet
net.sf.jasperreports.j2ee.servlets.ImageServlet

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

Источник

Краткое руководство по JasperReports

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.

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

Входные данные отчёта — это параметры и источник данных.

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

Источник данных — это подключение к реляционной базе, 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 Выводится на заднем плане каждой страницы

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

Читайте также:  что значит код 123
Секция Описание и назначение
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 можно почерпнуть в разделе документации на официальном сайте сообщества.

Источник

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

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

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

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

Читайте также:  что значит во сне заплетать косу

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

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

Использование языка 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;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  что делать если муж психопат советы

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

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

Итого

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

Источник

Отчеты в Java на основе JasperReports

Построение отчета

Теперь перед нами окно конструктора. Можно либо воспользоваться дизайнером либо вручную редактировать XML.

Допустим, есть модель с несколькими полями. Пусть это будут: dateStart, dateEnd, closed, number.
@javax.persistence.Column(name = «dateStart»)
private Date dateStart;
@javax.persistence.Column(name = «dateEnd»)
private Date dateEnd;
@javax.persistence.Column(name = «closed»)
private Boolean closed;
@javax.persistence.Column(name = «number»)
private String number;

Добавляем поле (Field) для каждого из них (тут важно не забыть указать тип поля). Это важно в контексте последующей работы с группировкой и отображением данных в отчете.

После всех манипуляций в конструкторе компилируем jasper-файл отчета.

Отображение в JFrame

String reportName = «DogReport.jasper»; // полный путь к отчету
List contracstList = _getContracts(); // получаем список договоров с сервера
JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(contractsList); //создаем коллекцию Jasper Report Bean Collection
JasperPrint jp = JasperFillManager.fillReport(reportName, new HashMap(), beanCollectionDataSource); // заполняем датасет отчета данными из коллекции
JRViewer jv = new JRViewer(jp); // компонент просмотра отчета

JFrame reportFrame = new JFrame();
reportFrame.getContentPane().add(jv);
reportFrame.validate();
reportFrame.setVisible(true);

Вот и всё. В итоге у нас есть отчет с возможностью печати, настройки и импорта в PDF, Excel, PPT, ODT, HTML.

Источник

66) Учебник по JasperReports

Что такое Jasper Reports?

JasperReports — это механизм отчетов Java с открытым исходным кодом. Эта библиотека классов Java предлагает возможности отчетности для вашего приложения. Этот инструмент создания отчетов помогает доставлять богатый контент на экран, на принтер или в файлы HTML, PDF, XLS, RTF, CSV, XML, ODT и TXT.

Из этого урока Jasper Reports вы узнаете:

Jasper Reports — настройка среды

Шаг 1) Нажмите «Загрузить сейчас», чтобы установить выпуск сообщества Jasper Reports .

Шаг 2) Выберите Jaspersoft Studio CE

Шаг 3) Нажмите на кнопку Скачать, чтобы открыть файл загрузки TIB_js-studiocomm_6.9.0_windows_x86_64.exe.TIB_js-studiocomm_6.9.0_windows_x86_64.exe

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

Шаг 5) В следующем диалоговом окне нажмите кнопку «Далее»

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

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

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

Шаг 9) Нажмите «Начать» .

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

Зачем использовать Jasper Reports?

Вот много причин для использования инструмента отчетов Jasper:

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

Ниже приводится общий поток жизненного цикла отчетов Jasper:

Разработка отчета:

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

Однако, если вы используете дизайнер отчетов, мы можем визуализировать макет отчета, и реальная структура JRXML должна игнорироваться.

Составление отчета:

На этом этапе жизненного цикла компилируется JRXML, который создается на первом этапе, и генерируется двоичный объект, называемый файлом Jasper (файл с jasper xtn).

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

Выполнение отчета:

На этом этапе данные из приложения собираются и заполняются в формате скомпилированного отчета. Существует класс с именем net.sf.jasperreports.engine.JasperFillManager, который предлагает функции для заполнения данных в отчетах.

Вывод будет сохранен в файле печати Jasper (файл с jprint xtn), который можно использовать для печати или экспорта отчета.

Экспорт отчета в нужный формат:

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

Особенности Jasper Reports

Вот, Важные Особенности инструмента Отчетов Джаспера:

Источник

Строительный портал