
この例は、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