レポート・ドライバー・プログラムは、一般的な EGL プログラムの一種です。レポート設計ファイルからコンパイルされる .jasper ファイルを使用して、レポートを実行します。
program reportDriverProgram type BasicProgram
function main()
SQLLib.defineDatabaseAlias("customer",
"jdbc:derby:C:¥¥databases¥¥CustomerDatabase");
SQLLib.connect("customer", "admin", "admin");
myReport Report = new Report();
myReportData ReportData = new ReportData();
myReport.reportDesignFile =
"C:¥¥Workspace¥¥MyProject¥¥bin¥¥reportModel.jasper";
myReport.reportDestinationFile = "C:¥¥temp.jrprint";
myReport.reportExportFile = "C:¥¥MyReport.pdf";
myReportData.connectionName = "customer";
myReportData.sqlStatement =
"select * from EGL.CUSTOMER order by CUSTOMER_ID desc";
myReport.reportData = myReportData;
reportLib.fillReport(myReport, DataSource.sqlStatement);
reportLib.exportReport(myReport, ExportFormat.pdf);
end
end
円記号 (¥) がエスケープ・シーケンスで使用されているため、パス名には二重の円記号を使用する必要があります。
| コード | 説明 |
|---|---|
|
EGL ライブラリー SQLLib の関数を使用して、データベースに接続し、データベースの別名を定義します。 |
|
レポートを表すためのレポート変数を新規作成します。 |
|
レポート内のデータを表すためのレポート・データ変数を新規作成します。 |
|
レポート設計ファイルからコンパイルされる .jasper ファイルのロケーションを設定します。 |
|
レポートの処理中に使用される一時ファイルのロケーションを設定します。 |
|
エクスポートされるレポートのロケーションを設定します。 |
|
前の手順で定義したデータベース別名を使用して、レポートが使用するデータベース接続を設定します。 |
|
レポート用のデータを提供するデータベース・アクセス文を設定します。 |
|
レポート変数をレポート・データ変数と関連付けます。 |
|
レポートにデータを記入します。 |
|
レポートを実行し、エクスポートします。 |
Record myRecord type BasicRecord
author String;
description String;
title String;
end
//変数宣言
myReport Report = new Report();
myReportData ReportData = new ReportData();
recArray myRecord[];
recArrayElement myRecord;
//レポート駆動コードを含む関数
function makeReport()
//レポート・ファイルの場所を初期化する
myReport.reportDesignFile =
"c:¥¥workspace¥¥report_project¥¥" ::
"bin¥¥report_package¥¥myReport.jasper";
myReport.reportDestinationFile =
"c:¥¥temp¥¥myReport.jrprint";
//レポート・データを取得する
populateReportData();
myReport.reportData = myReportData;
//レポートにデータを埋め込む
reportLib.fillReport(myReport, DataSource.reportData);
//レポートを HTML 形式でエクスポートする
myReport.reportExportFile = "c:¥¥temp¥¥myReport.html";
reportLib.exportReport(myReport, ExportFormat.html);
end
function populateReportData()
recArrayElement.author="Jane Austen";
recArrayElement.title="Northanger Abbey";
recArrayElement.description = "British Novel";
recArray.appendElement(recArrayElement);
recArrayElement.author = "Jane Austen";
recArrayElement.title="Emma";
recArrayElement.description = "British Novel";
recArray.appendElement(recArrayElement);
recArrayElement.author = "Charles Dickens";
recArrayElement.title="Our Mutual Friend";
recArrayElement.description = "British Novel";
recArray.appendElement(recArrayElement);
recArrayElement.author = "Gustave Flaubert";
recArrayElement.title="Madame Bovary";
recArrayElement.description = "French Novel";
recArray.appendElement(recArrayElement);
recArrayElement.author = "M. Lermontov";
recArrayElement.title="Hero of Our Time";
recArrayElement.description = "Russian Novel";
recArray.appendElement(recArrayElement);
end
JasperReports は、記入されたレポート・データを中間宛先ファイル (拡張子 .jrprint) として保存し、そこから複数のエクスポート・ファイルを作成することができます。記入されたレポートは PDF、HTML、XML、CSV (スプレッドシート・プログラムで読み取り可能な、コンマで区切られた値)、およびプレーン・テキストの出力として、エクスポートすることができます。レポートをエクスポートするには、EGL レポート・ドライバー・プログラム内の reportLib.exportReport() 関数で、レポート変数と、レポートのフォーマットを示すパラメーターとを指定して使用します。
myReport.ReportExportFile = "c:¥¥temp¥¥my_report.pdf";
reportLib.exportReport(myReport, ExportFormat.pdf);
重要: JasperReports は、エクスポートされたレポートを自動的に更新することはありません。 レポートの設計を変更する場合、またはデータが変更された場合は、レポートを再記入し、再度エクスポートする必要があります。