JasperReports
JasperReports | |||
---|---|---|---|
Тип | Java-библиотека | ||
Разработчик | Jaspersoft | ||
Написана на | Java[1] | ||
Операционная система | Кроссплатформенное ПО | ||
Первый выпуск | 2002 | ||
Аппаратная платформа | Java Virtual Machine | ||
Последняя версия | 6.19.0 (22 февраля 2022 года) | ||
Репозиторий | github.com/TIBCOSoftware… | ||
| |||
| |||
Лицензия | GNU Lesser General Public License | ||
Сайт | community.jaspersoft.com/… | ||
Медиафайлы на Викискладе |
JasperReports — Java-библиотека для создания отчётов. На основе XML-шаблонов отчётов генерируются готовые для печати документы, консолидирующие данные из различных источников (JDBC, JavaBean, XML, CSV, XLS). Отчёты могут выводиться на экран, принтер, либо в форматы PDF, RTF, HTML, XLS, CSV и XML.
В случае использования JDBC, основной частью шаблона будет являться SQL-запрос, который указывает какие данные необходимо выбрать из базы данных для генерации отчёта.
В XML-шаблоне отчета (формируется в одном из специализированных графических редакторов, имеет расширение .jrxml) допустимо применение css-стилей и выражений для проверки или вычисления результата (JS, groovy).
Возможности
- Поддержка различных источников данных: JDBC, CALS Table Models, XML, CSV, JavaBeans, EJBQL, Hibernate, а также возможность использования собственного источника данных на основе интерфейса JRDataSource
- Экспорт в различные форматы данных: PDF, HTML, XLS, RTF, ODT, CSV, XML, XHTML, DOCX, XLSX.
- Использование так называемых скриплетов (scriptlets) на Java, которые могут быть вызваны до или после определённых этапов генерации отчётов, таких как Отчёт (Report), Страница (Page), Колонка (Column) и Группа (Group)
- Использование динамических языков JavaScript и Groovy при реализации логики отчета.
- Реализация диаграмм (charts) на основе библиотеки JFreeChart.
- Реализация подотчётов (subreports) с неограниченной глубиной вложенности.
- Реализация кросстаблиц (crosstabs).
- Группировка данных по требуемому полю
JRXML-шаблон
Дизайн JasperReports описывается в специальном XML-файле шаблона, который называется JRXML. Данный шаблон можно создать в ручном режиме (текстовый редактор) или используя различные графические дизайнеры для JasperReports.
Простейший пример шаблона:
<?xml version="1.0" encoding="windows-1251"?> <!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport name="ReportName"> <style name="Arial_Normal" isDefault="true" fontName="Arial" fontSize="12" pdfFontName="c:\tahoma.ttf" pdfEncoding="Cp1251" isPdfEmbedded="false" /> <field name="name" class="java.lang.String" /> <detail> <band height="20"> <textField> <reportElement x="0" y="0" width="50" height="20" /> <textFieldExpression class="java.lang.String"> <![CDATA[$F{name}]]> </textFieldExpression> </textField> </band> </detail> </jasperReport>
Тег jasperReport
указывает на начало отчета. Для того чтобы использовать поля, сначала их необходимо описать, например, <field name="name" />
. В описание входит имя поля name
и его java-class class
. После описания поля к нему можно обращаться следующим образом: $F{name}
. Директива $F{…}
указывает на использование именно поля. Также возможно применение переменных $V{…}
и параметров $P{…}
.
Примечания
- ↑ The jasperreports Open Source Project on Open Hub: Languages Page — 2006.
Ссылки
- Официальный сайт
Графические дизайнеры для JasperReports
- iReport — графический редактор отчётов для работы в среде NetBeans IDE; создан той же организацией, которая создала JasperReports; поставляется также в виде отдельного приложения
- Jaspersoft Studio — является портом iReport под Eclipse; создан той же организацией, которая создала JasperReports
- DynamicReports — Open source Java API reporting library based on JasperReports
- JasperAssistant — графический редактор отчётов для JasperReports, работающий в среде Eclipse; коммерческая лицензия
- Plazma Report Designer
- JasperWave Report Designer — дизайнер шаблонов для JasperReports, построенный на Eclipse платформе (поставляется как в виде набора плагинов для Eclipse IDE, так и в виде отдельного приложения).