|
|
1 2 3 4 次のページ
|
|
はじめに
|
こんにちは。ビーブレイクシステムズの横井です。iReport編の最終回となる今回は、第3回で作成した見積書をJavaアプリケーションやWebアプリケーションへ組み込む方法について説明します。
ここで第2回の説明を思い出して、頭の中を整理していただきたいと思います。実際の帳票出力処理はJasperReportsが行っていますので、アプリケーションに組み込む場合はiReportで作成したテンプレートXMLとJasperReportsを利用することになります。
|
JasperReportsのデータ変換
|
組み込み方法の説明の前に、JasperReportsのデータ変換の流れについて説明します。JasperReportsでは以下の図のように3段階のステップを経て帳票を出力しており、それぞれのステップの状態をファイルに保存しておくこともできます。例えば、動的なデータのバインドが不要な帳票であれば、あらかじめ(3)の.jrprintファイルを用意しておくことで、出力にかかる時間を短縮することができます。逆に、毎回コンパイルから行うようなコーディングをすると、必要以上にリソースを消費し、処理時間も長くなります。
|
図:データ変換の流れ
|
PDF出力
|
それではJasperReportsを使用した出力プログラムについて見て行きましょう。第3回で作成した見積書を顧客名付きで出力するプログラムについて説明します。なお、ここで紹介するプログラムの白文字部分は環境に応じて変更してください。
見積書を顧客名付きで出力
|
import java.sql.*;
import java.util.*;
import net.sf.jasperreports.engine.*;
/**
* JasperReportのサンプル
*
* コンパイル〜データのバインド〜出力の全ステップを行う
*/
public class JasperSample1 {
public static void main(String[] args) {
// テンプレートXMLファイルのパス
String templatePath = "./template/estimate.jrxml";
// 出力するPDFファイルのパス
String destPath = "./output/JasperSample1.pdf";
Connection con = null;
try {
// (1)テンプレートXMLのコンパイル
JasperReport jasperReport = JasperCompileManager.compileReport(templatePath);
// (2)パラメータの生成
Map paramMap = new HashMap();
paramMap.put("CLIENT_NAME", "ビーブレイクシステムズ");
// (3)データソースの生成
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection(
"jdbc:postgresql://hostname:port/instance", "user","pass");
// (4)データの動的バインド
JasperPrint print = JasperFillManager.fillReport(jasperReport, paramMap, con);
// (5)PDFへ出力
JasperExportManager.exportReportToPdfFile(print, destPath);
} catch (Exception ex) {
ex.printStackTrace();
}
finally{
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
|
上記のプログラムを実行すると、第3回に作成した見積書が出力されます。このプログラムでは、先ほど説明した流れが分かりやすいように、コンパイル、バインド、出力の全ステップをプログラムで行っています。
|
出力した見積書
(35.2 KB) 上記のプログラムから作成したものです。こちらを参考にしながら作成してみてください。
|
|
1 2 3 4 次のページ
|
|
|
|
著者プロフィール
株式会社ビーブレイクシステムズ 横井 朗
オープンソース指向技術コンサルタント。Java専門のソフトウェアハウス〜フリーエンジニアを経て現職。帳票開発のみならず、オープンソースを用いたシステム構築を日々提案。なによりもお客様の真のニーズを求めるため社内外でオープンソースに関する啓蒙活動を行う。
|
|
|
|