検索条件テンプレート

最終更新日: 2022年3月24日
R8 | R9

「検索テンプレート」は、複数の検索条件の組み合わせに名前を付け、この名前によって検索条件を自動セットするという機能です。

  1. 「検索テンプレート名称」を選択していない状態では、検索項目「業務名」「登録区分」はともに未選択です。
    検索テンプレート名称を選択していない初期状態
  2. 「検索テンプレート名称」から任意の検索処理パターンを選択します。
    検索テンプレート名称を選択する
  3. 検索条件が自動的にセットされます。
    検索条件が自動的にセットされた
  4. ここで「検索の実行」ボタンを押下すると、セットされた検索条件で絞り込みを行うことができます。
    検索条件を用いる

定義方法

今回用意したモデルは次の通りです。

モデル一覧

「登録区分」モデル

このモデルおよび初期データ(「仮登録」・「本登録」)はあくまで一例です。

登録区分モデル

「業務名マスタ」モデル

このモデルも、あくまで一例です。

業務名マスタモデル

ビルド後に次のようなサンプルデータを登録しています。

業務名マスタモデルのサンプルデータ

「検索条件マスタ」モデル

「検索条件テンプレート」を格納するためのモデルです。
このモデルに含まれる項目は、上記「登録区分」と「業務名マスタ」モデルの値を参照します。

「検索条件テンプレート」モデルの定義

例えば「業務名」項目は、「業務名マスタ」モデルを参照しています。

「業務名」項目の定義

今回のサンプルで用いた検索条件テンプレートの例です。
「業務名」「業務区分」が実際の検索項目で、これに名前をつけています。

「検索条件テンプレート」の例

「対象業務」モデル

検索条件テンプレートを適用するモデルです。
ポイントは、検索条件テンプレートモデルの名称を選択することで、検索条件を(参照連動で)引っ張ってくることです。
これが、下図の赤枠部分になります。

ただし、この参照連動項目そのものは検索条件ではありません。実際の検索項目は青枠部分になります。

対象業務モデル
  1. 「検索テンプレート名称」項目は、「検索条件テンプレート」モデルを参照します。
    「検索テンプレート名称」項目の定義
  2. 「参照連動(隠し)業務名」「参照連動(隠し)登録区分」項目は、それぞれ検索テンプレートモデルの値を参照連動で取得しています。
    「参照連動(隠し)業務名」の関連
    「参照連動(隠し)登録区分」の関連
  3. 「業務名」項目は業務名マスタモデルの名称項目を参照しています。
    「業務名」項目
  4. 「登録区分」項目は登録区分モデルの内容項目を参照しています。
    「登録区分」項目
  5. 図12の赤枠で囲った項目「検索テンプレート名称」「参照連動(隠し)業務名」「参照連動(隠し)業務区分」は、検索条件に用いるという設定を行っていますが、データベースに保存しません。
    (これは検索画面で利用するという意図のためで、実際の検索条件には使いません。)
    「検索テンプレート名称」はデータベースに保存しない

    参照連動に設定した項目は、標準で値を保存しない設定が適用されます。

    「参照連動(隠し)業務名」「参照連動(隠し)業務区分」もデータベースに保存しない
  6. 「参照連動(隠し)業務名」および「参照連動(隠し)業務区分」は「入力制御 > 隠し項目 > 全画面」を有効にします。
    「入力制御-隠し項目にする(全画面)」
  7. 同様に、この2項目に対して「出力制御 > 詳細画面 > 共通 > 隠し項目にする」を有効にします。
    「出力制御 > 詳細画面 > 共通 > 隠し項目にする」
  8. さらに、この2項目に対して「検索制御 > 隠し項目 > 全画面」および「検索制御 > 読み込み専用 > 全画面」を有効にします。
    「検索制御 > 隠し項目 > 全画面」および「検索制御 > 読み込み専用 > 全画面」
  9. 図12の青枠部分で定義した実際に検索時に用いる項目(「業務名」および「登録区分」)の設定を行います
    「検索制御 > 別項目の値をコピーして利用する」に、対応する参照連動項目名を指定します。
    これによって参照連動された値をコピーして、検索条件として利用することができます。
    別項目の値をコピーして利用する(業務名項目)
    別項目の値をコピーして利用する(登録区分項目)
  10. 最後に、対象業務モデルの「検索テンプレート名称」項目について、「入力制御 > 値変更時に画面を再描画する」を有効にします。
    これによって、テンプレート選択時に(画面には表示されませんが)検索値が参照連動され、その参照連動された値をコピーした状態で画面再描画が行われるようになります。
    値変更時に画面を再描画する

テンプレート選択直後に検索を実行するスクリプトWDN

図23の設定により、検索テンプレート名称を変更すると画面再描画されるようになります。しかし検索処理そのものは実行されていません。 ここではスクリプトを使って、再描画処理から検索処理を呼び出す方法を紹介します。(*1)

スクリプトを用意する

"コントローラ > 一覧 > 画面再描画" のタイミングで次のスクリプトを設定します。

return "redirect:showListTargetModel.do?action_Search";

"TargetModel" の部分はモデルIDに相当します。

"redirect:" の説明は "フォワードとリダイレクト" をお読みください。

仕様・制約

  • 検索条件のテンプレート項目と、チェックボックス(サブウィンドウ)を組み合わせることはできません。(サブウィンドウで選択された値が、テンプレート項目の値に上書きされます。またリストボックスなどの項目がクリアされるなどの問題が生じます。)