JasperReport 設計ファイルの作成

JasperReport 設計ファイルは、レポートのレイアウトと外観を指定します。 作業設計ファイル (拡張子が .jasper) をインポートしない場合は、この設計ファイル を作成または変更する必要があります。

このトピックに記載する範囲を超える詳細情報については、 以下の Web サイトを参照してください。

http://jasperforge.org

拡張子が .xml のファイルをソースに使用することができます。 ただし、これによってコンパイルが遅くなることがあります。JasperReports は、.jrxml 拡張子を使用したときに最大限の能力を発揮します。

パッケージに設計文書を追加する手順は、次のとおりです。
  1. 次に示す方法の 1 つで設計文書を作成する。
    • サード・パーティー製の JasperReports 設計ツール (JasperAssistant または iReport など) を使用する。 作成するファイルの拡張子が .jrxml であることを確認してください。
    • テキスト・エディターを使用して、JasperReports XML ソース情報を新しいテキスト・ファイルに書き込み、 そのファイルを .jrxml ファイルとして保存する。
  2. ご使用のレポート・ドライバー・ファイルおよびオプションの EGL レポート・ハンドラーと同じ EGL パッケージに、XML 設計文書を置く。
  3. XML ソース・ファイルをカスタマイズして、以下のデータ・ソースのうちの 1 つを使用する。
    • 非常にシンプルで、単純なデータベース・クエリーがある場合は、DataSource.databaseConnection 型のレポートを作成する。XML 設計ファイル・ソースにご使用の SQL 照会を組み込みます。 EGL レポート・ドライバーは、ご使用の接続情報を JasperReports に渡します。
    • 複雑なデータベース操作を実行する必要がある場合や、SQL 文を動的にビルドする必要がある場合は、DataSource.sqlStatement 型のレポートを作成する。EGL レポート・ドライバーは、SQL 照会を含み、その結果セットを JasperReports に渡します。
    • データがデータベース以外から取得される場合は、DataSource.reportData 型のレポートを作成する。 EGL レポート・ドライバーは、複雑なレポート・データを JasperReports に渡します。 接続情報は必要ありません。
  4. ソース・ファイルをコンパイルする。

以下に、レポート設計ファイルの例を示します。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE jasperReport PUBLIC 
"//JasperReports//DTD Report Design//EN" 
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="simpleReport">

    <field name="CUSTOMER_ID" class="java.lang.String" />
    <field name="FIRST_NAME" class="java.lang.String" />
    <field name="LAST_NAME" class="java.lang.String" />
    <field name="PHONE" class="java.lang.String" />
    
    <pageHeader>
    
        <band height="30">
            <staticText>
                <reportElement x="0" y="0" width="70" height="24" />
                <text>
                    <![CDATA[Customer ID: ]]>
                </text>
            </staticText>
            <staticText>
                <reportElement x="140" y="0" width="70" height="24" />
                <text>
                    <![CDATA[First name: ]]>
                </text>
            </staticText>
            <staticText>
                <reportElement x="280" y="0" width="70" height="24" />
                <text>
                    <![CDATA[Last name: ]]>
                </text>
            </staticText>
            <staticText>
                <reportElement x="420" y="0" width="70" height="24" />
                <text>
                    <![CDATA[Phone: ]]>
                </text>
            </staticText>
        </band>
        
    </pageHeader>
    
    <detail>
    
        <band height="30">
            <textField>
                <reportElement x="0" y="0" width="70" height="24" />
                <textFieldExpression>
                    <![CDATA[$F{CUSTOMER_ID}]]>
                </textFieldExpression>
            </textField>
            <textField>
                <reportElement x="140" y="0" width="70" height="24" />
                <textFieldExpression>
                    <![CDATA[$F{FIRST_NAME}]]>
                </textFieldExpression>
            </textField>
            <textField>
                <reportElement x="280" y="0" width="70" height="24" />
                <textFieldExpression>
                    <![CDATA[$F{LAST_NAME}]]>
                </textFieldExpression>
            </textField>
            
            <textField>
                <reportElement x="420" y="0" width="70" height="24" />
                <textFieldExpression>
                    <![CDATA[$F{PHONE}]]>
                </textFieldExpression>
            </textField>
        </band>
        
    </detail>
    
</jasperReport>

このレポート設計ファイルの例は、ID 番号、ファーストネーム、ラストネーム、および電話番号といった 4 つの情報列を出力します。 <pageHeader> セクションは列見出しを出力し、<detail> セクションは、レポート・ドライバー・プログラムによって提供されたデータに基づくデータ行を出力します。

以下のセクションでは、異なるタイプの XML ソース・ファイルの特性を示しています。 この情報でカバーされているのは、非常にシンプルなケースです。 より複雑な例については、上述の JasperReports Web サイトまたはご使用の設計ツールの資料 (ツールを使用しようと決めている場合) を参照してください。

DataSource.databaseConnection 型の EGL ソース・ファイル

ご使用の EGL ソース・ファイルに接続情報を組み込み、XML 設計ファイル・ソースにご使用の SQL 照会を組み込みます。 ここに、非常にシンプルなケースの構文を挙げます。
<queryString><![CDATA[SELECT * FROM Table_Name]]></queryString> 
Table_Name
ご使用のデータベースからのテーブル名
使用する特定のフィールド (SQL 結果セットの列に結合される) を定義します。
<field name="Field_Name" class="java.lang.class_type"></field>
Field_Name
ご使用の設計ファイルにある照会からの結果セットの列名。フィールド名は、Java™ 変数の命名規則に準拠している必要があります。 SQL 文内で列名に別名を使用することで、重複する名前や正しくない文字 (「.」など) といった競合を処理することができます。
Class_Type
Field_Name が参照するデータの型を識別する java.lang クラス (Integer、String など)。
TextFieldExpression タグで、レポートにフィールドを配置します。
<textFieldExpression class="java.lang.class_type">
<![CDATA[$F{Field_Name}]]>
</textFieldExpression>

DataSource.sqlStatement 型の EGL ソース・ファイル

EGL レポート・ドライバー・ファイルに SQL 文を配置します。 ご使用のレポート・ドライバーで明示的に接続を指定するか、またはご使用のビルド記述子でデフォルトの接続を使用することができます。 XML 設計ファイルで、レポートに印刷する特定のフィールドを定義します。フィールド名は、SQL 文の結果セットの列名を参照します。
<field name="Field_Name" class="java.lang.class_type"></field>
Field_Name
ご使用の EGL レポート・ドライバーで照会によって作成された結果セットの列名。フィールド名は、Java 変数の命名規則に準拠している必要があります。 必要に応じて、SQL 文内の列名を別名にすることができます。
Class_Type
Field_Name が参照するデータの型を識別する、Integer または String などの java.lang クラス。
TextFieldExpression タグで、レポートにフィールドを配置します。
<textFieldExpression class="java.lang.class_type">
<![CDATA[$F{Field_Name}]]>
</textFieldExpression>

DataSource.reportData 型の EGL ソース・ファイル

この例では、データベースを使用しないため、XML ソースや EGL レポート・ドライバーでは、接続または SQL 文は不要です。その代わり、EGL レポート・ドライバーで作成するレコードで使用する、特定のフィールドを定義します。
<field name="Field_Name" class="java.lang.class_type"></field>
Field_Name
EGL ソース・ファイルで指定しているものと完全に一致するフィールド名
Class_Type
Field_Name が参照するデータの型を識別する、Integer または String などの java.lang クラス。
TextFieldExpression タグで、レポートにフィールドを配置します。
<textFieldExpression class="java.lang.class_type">
<![CDATA[$F{Field_Name}]]>
</textFieldExpression>

XML 設計ファイル・ソースのコンパイル

以下の条件が TRUE の場合、EGL ソース・フォルダーのパッケージ・ディレクトリーで検出するすべての .jrxml ファイルを、EGL が自動的にコンパイルします。
  • .jrxml ファイルが変更された
  • .jrxml ファイルにはエラーがない
  • javac コンパイラーが実行パスにある

EGL は、コンパイルされた .jasper ファイル を Java Resources¥package_name ディレクトリーに配置します。 このディレクトリーは、EGLSource¥package_name と並列のものです。 ご使用の EGL レポート・ドライバーを正常に生成すると、製品は .jasper ファイルのリンクされたコピーを、並列の bin¥package_name ディレクトリーに配置します。 「プロジェクト」 > 「すべてをビルド」または「プロジェクト」 > 「クリーン」と選択することで、.jasper ファイルを手動で作成してコピーすることができます。

XML 設計文書とレポート・ハンドラーを同時に作成する場合のガイドラインについては、 JasperReports によるレポートの作成を参照してください。 XML 設計文書がレポート・ハンドラーからレポート・データ・レコードを取得する方法を示す例については、JasperReport 型のレポートを実行するコードの作成を参照してください。


フィードバック