この例は、DynamicReportsとJasperReportsを使用して簡単なレポートを生成する方法を示しています。
DynamicReports
は、多くの一般的な形式にエクスポートできるレポート文書を作成するためのJavaレポートライブラリです。これは、よく知られているJasperReportsライブラリに基づいています。
この記事で使用されているツール:
-
DynamicReports 3.1.3
-
JasperReports 5.0.4
-
MySQL 5.5
-
Maven 3
-
JDK 1.6.0
1. DynamicReportsをダウンロードする
公式サイトhttp://www.dynamicreports.org[ウェブサイト]からDynamicReportsをダウンロードしてください。 Mavenを使用している場合は、Mavenの中央リポジトリからダウンロードできます。 Mavenプロジェクトの場合は、次の設定をpom.xmlファイルに追加します。
pom.xml
<dependencies> <!-- DynamicReports --> <dependency> <groupId>net.sourceforge.dynamicreports</groupId> <artifactId>dynamicreports-core</artifactId> <version>3.1.3</version> </dependency> <!-- MySQL database driver --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.25</version> </dependency> </dependencies>
2.レポートデータソース
JDBCドライバを使用してMySQLデータベースに接続します。
Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection("jdbc:mysql://hostname:port/dbname","username", "password");
3.レポートビルダー
MySqlサーバーにデータベーステーブルcustomersがあり、customersテーブルに次の構造があるとします。
| ======================= |列名|データ型| id | int | first
name | varchar(50)| last
name | varchar(50)| date |日付| =======================
すべての顧客をテーブルから取得し、そのデータをレポートに入れるレポートを作成します。
3.1新しい空のレポートオブジェクトを作成します。
JasperReportBuilder report = DynamicReports.report();
3.2各データベース列のレポート列を作成します。
Columns.column("Customer Id", "id", DataTypes.integerType())
最初のパラメータは、レポートヘッダーに表示される列ラベルです。 2番目のパラメータは列名です。この名前は、データベースの列名と同じにする必要があります。 3番目のパラメータは、列の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.完全な例
SimpleReportExample.java
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.それを実行する
SimpleReportExampleクラスを実行します。
Figure:pdfファイルが作成されます.
ソースコードをダウンロードする
ダウンロードする –
JavaDynamicReports-Example.zip
(11 KB)
参考文献
-
http://www.dynamicreports.org/getting-started
[DynamicReports – 取得方法
始めた]。
http://www.dynamicreports.org/documentation/documentation-overview
[DynamicReports