サポート > Wagby Developer Network > カスタマイズ事例 > Excel 帳票を拡張する
カスタマイズ要件
今回のテーマはプレースホルダを拡張し、任意のデータを出力させるというものです。
例として、モデル customer の詳細表示画面に用意された「詳細帳票」ボタンを押下すると、独自に用意したプレースホルダを利用できるようになるという実装を説明します。
カスタマイズ方法
ReplaceMapHelper ファイルの編集
- 自動生成された $(DEVHOME)\env\work\srcgen\jp\jasminesoft\wagby\app\customer\ReplaceMapHelper.java ファイルを、
$(DEVHOME)\customize\webpage\WEB-INF\src\jp\jasminesoft\wagby\app\customer\MyReplaceMapHelper.java として保存します。(ファイル名は「My」を接頭語として付与します。)
フォルダ名は、ご利用になるパッケージ名により変わります。適切に読み替えてください。
- MyReplaceMapHelper.java を編集します。
必要に応じて、get メソッドおよび getType メソッドをオーバーライドします。
public class MyReplaceMapHelper extends ReplaceMapHelper { ... /** * プレゼンテーションモデルである model * 要素 customer_p の置換マップ * を返します。 * * @param customer_p CustomerP */ public Map get(CustomerP customer_p, DbActionParameter p) { Map replaceMap = new HashMap(); ... replaceMap.put("${original.data1}", "Change the Excel report."); return replaceMap; } public Map getType(CustomerP customer_p, DbActionParameter p) { Map typeMap = new HashMap(); ... typeMap.put("${original.data1}", "string"); return typeMap; }
このソースコードのポイントは次のとおりです。
- get メソッド内で用意する replaceMap オブジェクト(実体は HashMap)に、任意のキー名で出力データを設定することができます。
- getType メソッド内で用意する typeMap オブジェクト(実体は HashMap)に、get メソッド内で用意したプレースホルダの「型情報」をセットします。"int", "short", "float", "double", "long", "date", "time", "dateTime", "string" が指定できます。
- ファイルは UTF-8 文字形式で保存します。
ビルド
変更したファイルのビルド方法については、「カスタマイズファイルの適用方法」をお読みください。
なお、カスタマイズされたコードの存在が認識されると、自動生成される bean 定義ファイル(work\srcgen\webpage\WEB-INF\applicationContext\customer.xml)は次のように変更されます。
<bean id="CustomerReplaceMapHelper"
class="jp.jasminesoft.wagby.app.customer.MyReplaceMapHelper"/>
これによって、カスタマイズされたクラスが使われるようになることがわかります。
ダウンロード
このページで紹介したサンプルをダウンロードしてお試しいただくことができます。
- pmholder.zip (463,458 byte)
同 zip ファイルには次のファイルが含まれています。
customize\webpage\WEB-INF\src\jp\jasminesoft\wagby\app\customer\MyReplaceMapHelper.java xls-model\pmholder.xls
ダウンロード後、次の手順に従ってお試しください。
- ダウンロードファイルを $(DEVHOME) に展開します。Wagby 定義ファイルならびにカスタマイズコードが上書きで配置されます。(なお、パッケージ名は「jp.jasminesoft.wagby」となっていますので、変更している方はご注意ください。)
- フルビルドを行います。

