В этом примере показано, как создать простой отчет с помощью DynamicReports и JasperReports. DynamicReports – это библиотека отчетов Java, которая позволяет создавать документы отчетов, которые можно экспортировать во многие популярные форматы. Он основан на известной библиотеке JasperReports.
Инструменты, используемые в этой статье:
- Динамические отчеты 3.1.3
- JasperReports 5.0.4 – отчеты
- MySQL 5.5
- Мавен 3
- JDK 1.6.0 JDK 1.6.0
1. Скачать динамические отчеты
Загрузите динамические отчеты с официального веб-сайта . Если вы используете Maven, вы можете загрузить его из центрального хранилища Maven. Для проектов Maven добавьте следующую конфигурацию в pom.xml файл:
net.sourceforge.dynamicreports dynamicreports-core 3.1.3 mysql mysql-connector-java 5.1.25
2. Источник данных отчета
Подключитесь к базе данных MySQL с помощью драйвера JDBC.
Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection("jdbc:mysql://hostname:port/dbname","username", "password");
3. Конструктор отчетов
Предположим, что сервер MySQL содержит таблицу базы данных customers, а таблица customers имеет следующую структуру:
Имя столбца | Тип данных |
идентификатор | инт |
первое имя | варчар (50) |
фамилия и имя | варчар (50) |
дата | дата |
Мы создадим отчет, в котором будут представлены все клиенты из таблицы, и данные будут помещены в отчет.
3.1 Создайте новый пустой объект отчета.
JasperReportBuilder report = DynamicReports.report();
3.2 Теперь создайте столбец отчета для каждого столбца базы данных.
Columns.column("Customer Id", "id", DataTypes.integerType())
Первый параметр – это метка столбца, которая будет отображаться в заголовке отчета. Второй параметр – это имя столбца, это имя должно совпадать с именем столбца базы данных. Третий параметр – это тип столбца Java.
3.3 Добавьте столбцы отчета.
report .columns( Columns.column("Customer Id", "id", DataTypes.integerType()), Columns.column("First Name", "first_name", DataTypes.stringType()), Columns.column("Last Name", "last_name", DataTypes.stringType()), Columns.column("Date", "date", DataTypes.dateType()))
3.4 Добавьте в отчет текст заголовка и номер страницы.
.title(//title of the report Components.text("SimpleReportExample") .setHorizontalAlignment(HorizontalAlignment.CENTER)) .pageFooter(Components.pageXofY())//show page number on the page footer
3.5 Наконец, установите запрос к источнику данных и подключение.
.setDataSource("SELECT id, first_name, last_name, date FROM customers ", connection);
4. Полный Пример
package net.sf.dynamicreports.examples; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import net.sf.dynamicreports.jasper.builder.JasperReportBuilder; import net.sf.dynamicreports.report.builder.DynamicReports; import net.sf.dynamicreports.report.builder.column.Columns; import net.sf.dynamicreports.report.builder.component.Components; import net.sf.dynamicreports.report.builder.datatype.DataTypes; import net.sf.dynamicreports.report.constant.HorizontalAlignment; import net.sf.dynamicreports.report.exception.DRException; public class SimpleReportExample { public static void main(String[] args) { Connection connection = null; try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection( "jdbc:mysql://hostname:port/dbname","username", "password"); } catch (SQLException e) { e.printStackTrace(); return; } catch (ClassNotFoundException e) { e.printStackTrace(); return; } JasperReportBuilder report = DynamicReports.report();//a new report report .columns( Columns.column("Customer Id", "id", DataTypes.integerType()), Columns.column("First Name", "first_name", DataTypes.stringType()), Columns.column("Last Name", "last_name", DataTypes.stringType()), Columns.column("Date", "date", DataTypes.dateType())) .title(//title of the report Components.text("SimpleReportExample") .setHorizontalAlignment(HorizontalAlignment.CENTER)) .pageFooter(Components.pageXofY())//show page number on the page footer .setDataSource("SELECT id, first_name, last_name, date FROM customers", connection); try { //show the report report.show(); //export the report to a pdf file report.toPdf(new FileOutputStream("c:/report.pdf")); } catch (DRException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
5. Запустите его
Запустите класс Простого примера отчета.
Рисунок: Будет создан файл pdf.
Скачать Исходный Код
Рекомендации
- Динамические отчеты
- Джасперрепорты
- Динамические отчеты – Начало работы
- Динамические отчеты – Документация
Оригинал: “https://mkyong.com/java/reporting-in-java-using-dynamicreports-and-jasperreports/”