DynamicReportsロゴ、幅= 639、高さ= 366

この例は、DynamicReportsとJasperReportsを使用して簡単なレポートを生成する方法を示しています。

DynamicReports

は、多くの一般的な形式にエクスポートできるレポート文書を作成するためのJavaレポートライブラリです。これは、よく知られているJasperReportsライブラリに基づいています。

この記事で使用されているツール:

  1. DynamicReports 3.1.3

  2. JasperReports 5.0.4

  3. MySQL 5.5

  4. Maven 3

  5. 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ファイルが作成されます.


レポート、幅= 640、高さ= 424

ソースコードをダウンロードする

ダウンロードする –

JavaDynamicReports-Example.zip

(11 KB)