サポート > リポジトリ > 帳票 > 帳票出力内容をカスタマイズするスクリプト
ja | en

スクリプトを使って帳票出力データの内容をカスタマイズすることができます。 R7.9

「画面 > スクリプト > ヘルパ」から "帳票内容の編集" を選びます。

図1 スクリプトを記述する

スクリプトの書き方の詳細は「業務ロジック」をお読みください。

スクリプトが呼び出されるタイミング

ここで作成したスクリプトは、帳票ボタン押下後に標準の帳票データが用意されたあと、印刷処理にそのデータが渡される直前に呼び出されます。そのため、標準の帳票データを差し替えることができます。

スクリプトで利用できるオブジェクト

スクリプト内では次のオブジェクトが利用できます。

REPLACEMAP

キーおよび値に文字列を格納したマップ (java.util.Map) です。キー部分には次の命名規則があります。

キー表記 説明
${モデルID_p.項目ID} 詳細表示の内容
${モデルID_lp.行番号.項目ID} 一覧表示の内容
${モデルID_cp.項目ID} 一覧表示の検索条件の内容。範囲検索の場合、項目IDの末尾に "1jshparam" と "2jshparam" が付与される。

REPLACEMAPTYPE

項目の型情報を含むマップ (java.util.Map) です。キー部分のルールは REPLACEMAP と同じです。値部分は型情報になります。

例1 REPLACEMAPの内容をコンソールに表示する

REPLACEMAP の実体は java.util.Map です。そのため java.util.Iterator を使ったマップの操作を行うことができます。

var it = REPLACEMAP.keySet().iterator();
while (it.hasNext()) {
  var key = it.next();
  var value = REPLACEMAP.get(key);
  stdout.println(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);
}

エラーの扱い

スクリプト中に return 文で任意の文字列を返すと、エラーとして扱います。このとき、スクリプト実行中に BusinessLogicException が生じます。これはログ (system.log) にエラーとして記録されます。

さらに、スクリプト中で画面に表示されるエラーメッセージを用意することもできます。

var error = new Jfcerror();
error.content="エラーです";
p.errors.addJfcerror(error);

return "ERROR!";
この仕組みを応用して、帳票出力内容がある条件に合致した場合、その出力を行わずにエラーとし、画面にエラーメッセージを表示させることができます。