Eclipseで帳票開発(6)
パッケージJava製品開発担当の大です。こんにちは。
前回に引き続き、「シーオーリポーツIDEプラグイン for Eclipse」の解説をします。
今回は、テンプレートを編集して帳票クラスウィザードの動作をカスタマイズしていきます。
テンプレートでHello, World!
前回作成した、テンプレートの編集用のプロジェクトを開きます。
プロジェクトには、あらかじめ作成されているテンプレートがいくつか並んでいます。その中の「simple[シンプル]」テンプレートを開いて、Report.javaをダブルクリックしてください。
// <@template.note /> <#if packageName?exists> package ${packageName}; </#if> import java.util.ArrayList; ...(省略) /** * シーオーリポーツを使用して帳票作成を行うクラスです。 * */ public class ${report.className} implements IReport { ...(省略)
こんな風になっていると思います。これが帳票クラスのもととなるテンプレートファイルです。ためしにクラスコメントに1行「Hello, World!
」を追加してみましょう。
保存して、早速適当なプロジェクトで帳票クラスウィザードを起動し、このテンプレートを使用してみます。以下のように出力されれば成功です!
変数を使ってみる
今度は変数を使ってみましょう。
先ほどの「Hello, World!
」を消して、替わりに「@author ${myName}
」を追加してみます。 (@author
は、クラスの作成者を表すjavadocコメントのタグです。「myName
」が変数です)。
これを実行してみると、以下のようにエラーが発生します。
「
myName
」が定義されていない、と言われていますね。
変数には、帳票クラスウィザードであらかじめ定義済みの変数と、ユーザ定義の変数があります。定義済みの変数の一覧は、「描画ライブラリ ユーザーズマニュアル」の「詳細/テンプレートのカスタマイズ」にありますので、ご覧ください。ユーザ定義の変数を作成する方法はいくつかありますが、ここでは「パラメータ」として作成します。
「simple[シンプル]」プロジェクトの中にある、template.xmlをダブルクリックしてください。以下のようにテンプレート・エディタが開きます。
この画面の説明は次回しますので、とりあえず今は右下の「パラメータ」をクリックしてタブを開き、「新規」ボタンを押して「myName」を作成してください。
説明文は適当に入力します。型は「文字列」、デフォルト値は空白にして保存してください。
さて、再度帳票クラスウィザードを実行してみます。
ウィザードの最後のページで、作成したパラメータが見えるようになりました。追加したパラメータをダブルクリックして、値を指定します。
ウィザードを終了すると、以下のように出力されます。
FreeMarker
帳票クラスウィザードは、テンプレートファイルをFreeMarkerというテンプレートエンジンを使用して処理します。今回作成した変数の「${myName}
」という記述や、テンプレートファイル中の「<#if~>
」などの記述は、FreeMarkerのテンプレート言語であるFTL(FreeMarker Template Language)のものです。FreeMarkerはThe Visigoth Software Societyによるプロダクトで、オープンソース(BSDスタイルのライセンス)により開発が行われています。
機会があれば、FreeMarkerの使い方やFTLについても解説しようと思います(未定ですが)。
次回は、テンプレートに含まれるそのほかのファイルと、テンプレートエディタについて解説します。