メニューバーの[ファイル]から[New...]を選び、[New file]ダイアログを表示してください。このダイアログでは、新しいjrxmlファイルを作成できます。
テンプレート一覧から「Blank A4」を選択して、右下の[Open this Template]を押すと、ファイル保存のためのダイアログが表示されます。ファイル名や保存場所を指定して新しい帳票を作成してください。これで、空の帳票が作成されます。
帳票の部品を配置するには、パレットウィンドウにある部品をドラッグ&ドロップします。メニューバーの[ウィンドウ]→[パレット]を選択して、パレットを表示してください。パレットには、帳票に追加できる部品が表示されています。「Static Text」を、作成した帳票のDesignerタブにドラッグ&ドロップしてください。
Static Text(固定文字列)が帳票に配置されます。ほかにもいろいろな部品がありますが今回は「Static Text」のみを配置して帳票を出力してみます。
次にデータソースを設定します。ほとんどの場合、帳票を出力するときは、データベースに接続して、データベース内のデータを表示するのですが、はじめは、空のデータソースで帳票を出力します。
ツールバーにある、以下のようなデータベースのマークに電源プラグが付いているアイコンがデータソース(接続先データベースなど)の設定のためのアイコンです。
作成した帳票のファイル名が表示されているタブの下にある、[Designer][XML][Preview]の中から[Preview]を選ぶと、帳票のプレビューが表示されます。
以上が帳票を作成するための一番簡単な方法です。
iReportでは、メニューバーの[Preview]から、[PDF Preview]を選択することにより、PDFでプレビューできます。この場合、日本語を表示するには、フォントとクラスパスの設定が必要です。
フォントについては、テキストのプロパティでフォントを指定します。「Static Text」コンポーネント、または「Text Field」コンポーネントのプロパティで、[Pdf Font name]に「HeiseiKakuGo-W5」または「HeiseiMin-W3」を、[Pdf Encoding]に「UniJIS-UCS2-H (Japanese)」を指定することで日本語が表示されるようになります。
プロパティは、メニューバーの[ウィンドウ]→[プロパティー]を選択することで表示できます。
クラスパスには、「iTextAsian.jar」ファイルを追加する必要があります。iReportのメニューバーにある、[ツール]→[オプション]→[iReportアイコン(初期状態)]→[Classpath]タブで、右側にある[Add JAR]ボタンをクリックして「iTextAsian.jar」を指定します。iTextAsian.jarは、iReportをインストールしたフォルダの「ireport\modules\ext」にあります。
C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext\iTextAsian.jar
これでPDFプレビューで日本語が表示できるようになります。
また、プロパティの[Pdf Font name][Pdf Encoding]に、PCにインストールされているフォントファイルを指定することで、そのフォントで表示できます。
C:\WINDOWS\Fonts\MSGOTHIC.TTC,1
Identity-H (Unicode with horizontal writing)
「C:\WINDOWS\Fonts\MSGOTHIC.TTC,1」の最後の「,1」は、*.ttcファイルに入っている複数のフォントの中からフォントを指定するためのものです。
以上のようにして作成したjrxmlファイルは、アプリケーションに組み込まれたJasperReportsのライブラリを使って帳票として出力できます。
サンプルコードを以下に示します。
import java.io.File; import java.util.HashMap; import net.sf.jasperreports.engine.JREmptyDataSource; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class Sample1 { /** * @param args */ public static void main(String[] args) { try { // jrxmlを指定する File jrxmlFile = new File("C:\\Adempiere\\reports\\sampleReport1.jrxml"); if(jrxmlFile.exists()){ // jrxmlをコンパイルする JasperReport jasperReport = JasperCompileManager.compileReport(jrxmlFile.getAbsolutePath()); HashMap<String, Object> params = new HashMap<String, Object>(); // データソースにあるデータを、コンパイルされた帳票に入れる JasperPrint print = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource()); // 出力用のPDFを指定する File Pdf = new File("report1.pdf"); // 帳票の出力 JasperExportManager.exportReportToPdfFile(print, Pdf.getAbsolutePath()); }else{ System.out.println("jrxmlファイルが見つかりませんでした。"); } } catch (Exception e) { System.out.println(e.getMessage()); } } }
このサンプルコードをEclipseで動かすための簡単な説明をします。
Eclipseメニューバーから[File]→[New]→[Java Project]から新しくプロジェクトを作成します(プロジェクト名は、「JasperSample」など、適当な名前を付けてください)。
パッケージエクスプローラーでプロジェクトを右クリックして、コンテキストメニューから[New]→[Class]を選択してください。
[New Java Class]ダイアログが表示されるので、名前に適当なクラス名(Sample1など)を指定して、[public static void main(String[] args)]のチェックボックスをチェックしてください。右下の[Finish]ボタンを押すと、サンプル用のクラスが生成されます。
サンプルコードをコピー&ペーストしてください。
外部jarファイルをビルドパスに追加します。
サンプルコードを動かすには、「JasperReports - InstallationWiki」に書かれているように、JasperReportsのjarファイルなど、7つの外部jarファイルをビルドパスに追加する必要があります。これらのjarファイルはWeb上からダウンロードできますが、iReportをインストールしたフォルダの「ireport\modules\ext」にもあります。
C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext\commons-beanutils-1.8.2.jar C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext\commons-collections-3.2.1.jar C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext\commons-digester-1.7.jar C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext\commons-logging-1.1.jar C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext\iText-2.1.7.jar C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext\iTextAsian.jar C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext\jasperreports-3.7.6.jar
ちなみにxls形式で出力する場合は、Apache POIのjarファイルも必要です。
C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext\poi-3.6-20091214.jar
POIの使い方 については、以下の記事も参考にしてください。
Eclipseでビルドパスに追加するには、パッケージエクスプローラーでプロジェクトを右クリックして、コンテキストメニューから[Properties]を選択してください。
[Properties for JasperSample](JasperSampleの部分は作成したプロジェクト名)というダイアログが表示されるので、左メニューの[Java Build Path]→[右のLibrariesタブ]→[Add External JARs...]ボタンを押して、jarファイルを選択してください。
iReportでは、値のExpression(表現)に使われる言語が、デフォルトで「Groovy」になっているため、iReportの[Report Inspector]のツリーから、トップの階層(ファイル名と同じ名前)を選び、プロパティのLanguageをJavaに変更してください。
これでサンプルのPDFを出力できる状態になっていると思います。プログラムを実行してみてください。Javaのプログラムと同じ階層にreport1.pdfが作成されているはずです。
なお、このサンプルコードでは、空のデータソースを使っています。通常は、帳票生成時にデータベースのコネクションを引数として渡します。アプリからJasperReportsに渡す、パラメータの設定も省略していますが、このコードで帳票は生成できます。このサンプルの.jrxmlファイルはこちらからダウンロードできます。
次ページからはデータソースとしてデータベースを指定して帳票を出力する方法やXLS形式での出力などについて解説します。
Copyright © ITmedia, Inc. All Rights Reserved.