出力内容をカスタマイズする
最終更新日: 2022年11月9日
R8 | R9
「画面 > スクリプト > ヘルパ」から "帳票内容の編集" を選びます。
作成したスクリプトは(詳細画面または一覧画面に用意された)帳票ボタン押下後に標準の帳票データが用意されたあと、印刷処理にそのデータが渡される直前に呼び出されます。そのため、標準の帳票データを差し替えることができます。
スクリプト内では次のオブジェクトが利用できます。
キーおよび値に文字列を格納したマップ (java.util.Map) です。キー部分には次の命名規則があります。
項目の型情報を含むマップ (java.util.Map) です。キー部分のルールは REPLACEMAP と同じです。値部分は型情報になります。
REPLACEMAP の実体は java.util.Map です。そのため java.util.Iterator を使ったマップの操作を行うことができます。
次の例は、すべての値に "*" 文字を付与するものです。
スクリプト中に return 文で任意の文字列を返すと、エラーとして扱います。このとき、スクリプト実行中に BusinessLogicException が生じます。これはログ (system.log) にエラーとして記録されます。
さらに、スクリプト中で画面に表示されるエラーメッセージを用意することもできます。
この仕組みを応用して、帳票出力内容がある条件に合致した場合、その出力を行わずにエラーとし、画面にエラーメッセージを表示させることができます。
プレースホルダ jshfilename:image 表記ではなく、スクリプトで表示範囲を指定することもできます。スクリプトの設定が優先されます。
値は文字列なので、ダブルクォートで囲む必要があります。
定義方法
スクリプトが呼び出されるタイミング
仕様
スクリプトで利用できるオブジェクト
REPLACEMAP
キー表記
説明
${モデルID_p.項目ID}
詳細表示の内容
${モデルID_lp.行番号.項目ID}
一覧表示の内容
${モデルID_cp.項目ID}
一覧表示の検索条件の内容。範囲検索の場合、項目IDの末尾に "1jshparam" と "2jshparam" が付与される。
REPLACETYPEMAP
例1 REPLACEMAPの内容をコンソールに表示する
var it = REPLACEMAP.keySet().iterator();
while (it.hasNext()) {
var key = it.next();
var value = REPLACEMAP.get(key);
print(key+"="+value);
}
例2 REPLACEMAPの内容を改変する
var it = REPLACEMAP.keySet().iterator();
while (it.hasNext()) {
var key = it.next();
var value = REPLACEMAP.get(key);
value = value + "*";
REPLACEMAP.put(key,value);
}
エラーの扱い
var error = new Jfcerror();
error.content="エラーです";
p.errors.addJfcerror(error);
return "ERROR!";
注意
画像の扱い
REPLACEMAP.put("${customer_p.photo_jshfilename:image:col}","10");
REPLACEMAP.put("${customer_p.photo_jshfilename:image:row}","10");
REPLACEMAP.put("${customer_p.photo_jshfilename:image:sx}","0.5");
REPLACEMAP.put("${customer_p.photo_jshfilename:image:sy}","0.5");
制約