検索条件テンプレート

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

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

図1に例を示します。「検索テンプレート名称」を選択していない状態では、検索項目「業務名」「登録区分」はともに未選択です。

図1 検索テンプレート名称を選択していない初期状態

「検索テンプレート名称」から任意の検索処理パターンを選択します。

図2 検索テンプレート名称を選択する

図3に示すように、検索条件が自動的にセットされます。

図3 検索条件が自動的にセットされた

ここで「検索の実行」ボタンを押下すると、セットされた検索条件で絞り込みを行うことができます。

図4 検索条件を用いる

定義方法

上の例を実行するために用意したモデルを図5に示します。

図5 モデル一覧

「業務区分」モデル

このモデルおよび値("仮登録" "本登録")に意味はありません。サンプルとして扱っています。

図6 業務区分モデル

「業務名マスタ」モデル

このモデルにも意味はありません。サンプルデータとして図8を用意しています。

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

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

「検索条件テンプレート」を格納するためのモデルです。 このモデルに含まれる項目は、図6,図7に示した「業務区分」と「業務名マスタ」モデルの値を保持させています。

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

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

図10 「業務名」項目の定義

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

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

「対象業務」モデル

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

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

図12 対象業務モデル

「検索テンプレート名称」項目は、図9の「検索条件テンプレート」モデルを参照します。

図13 「検索テンプレート名称」項目の定義

「参照連動(隠し)業務名」「参照連動(隠し)業務区分」項目は、それぞれ検索テンプレートモデルの値を参照連動で取得しています。

図14 「参照連動(隠し)業務名」の関連
図15 「参照連動(隠し)業務区分」の関連

「検索テンプレート名称」「参照連動(隠し)業務名」「参照連動(隠し)業務区分」(赤枠部分)

図12の赤枠部分となる「検索テンプレート名称」「参照連動(隠し)業務名」「参照連動(隠し)業務区分」は、検索条件に用いるという設定を行っていますが、データベースに保存しません。(これは検索画面で利用するという意図のためで、実際の検索条件には使いません。)

図16 「検索テンプレート名称」はデータベースに保存しない
図17 「参照連動(隠し)業務名」「参照連動(隠し)業務区分」もデータベースに保存しない

「参照連動(隠し)業務名」「参照連動(隠し)業務区分」は「入力制御-隠し項目にする(全画面)」を設定します。

図18 「入力制御-隠し項目にする(全画面)」

同じく「参照連動(隠し)業務名」「参照連動(隠し)業務区分」は「出力制御(詳細画面)-隠し項目にする」を設定します。

図19 「出力制御(詳細画面)-隠し項目にする」

同じく「参照連動(隠し)業務名」「参照連動(隠し)業務区分」は「検索制御-隠し項目にする(全画面)」および「検索制御-読み込み専用にする」を設定します。

図20 「検索制御-隠し項目にする(全画面)」および「検索制御-読み込み専用にする」

「業務名」「登録区分」(青枠部分)

図12の青枠部分で定義した実際に検索時に用いる項目には、「検索制御-別項目の値をコピーして利用する」に、対応する参照連動項目名を指定します。これによって参照連動された値をコピーして、検索条件として利用することができます。

図21 別項目の値をコピーして利用する(1)
図22 別項目の値をコピーして利用する(2)

値変更時に画面を再描画する

最後に、対象業務モデルの「検索テンプレート名称」項目について、「入力制御-値変更時に画面を再描画する」を有効ににします。これによって、テンプレート選択時に(画面には表示されませんが)検索値が参照連動され、その参照連動された値をコピーした状態で画面再描画が行われるようになります。

図23 値変更時に画面を再描画する

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

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

スクリプトを用意する

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

return "redirect:showListTargetModel.do?action_Search";

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

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

仕様・制約

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