JasperReports

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
JasperReports
Тип

Java-библиотека

Разработчик

Jaspersoft

Написана на

Java

Операционная система

Кроссплатформенное ПО

Первый выпуск

2002

Аппаратная платформа

Java Virtual Machine

Последняя версия

6.2.2 (6 мая 2016 года)

Лицензия

GNU Lesser General Public License

Сайт

community.jaspersoft.com/project/jasperreports-library

JasperReports — это Java-библиотека для создания отчётов. На основе XML-шаблонов отчётов генерируются готовые для печати документы, консолидирующие данные из различных источников, в том числе JDBC. Отчёты могут выводиться на экран, принтер, либо в форматы PDF, RTF, HTML, XLS, CSV и XML. Основной частью шаблона является SQL-запрос, который указывает какие данные необходимо выбрать из базы данных для генерации отчёта. В XML-шаблоне допустимо применение стилей и выражений (для проверки или вычисления результата). Также возможна группировка данных по требуемому полю.

Возможности[править | править вики-текст]

  • Поддержка различных источников данных: 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" class="java.lang.String" />. В описание входит имя поля name и его java-class class. После описания поля к нему можно обращаться следующим образом: $F{name}. Директива $F{…} указывает на использование именно поля. Также возможно применение переменных $V{…} и параметров $P{…}.

Ссылки[править | править вики-текст]

Графические дизайнеры для 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, так и в виде отдельного приложения).