サポート > リポジトリ > 検索制御 > [応用] 検索画面のみに表示され、検索条件には使われない項目を用意する

検索処理を簡単にするため、ラジオボタンを押すと検索条件が自動設定されるという操作画面を紹介します。

検索画面において「対応期限」という項目の検索を実行するにあたり、操作を容易にするために "3日後", "5日後", "7日後" といったラジオボタンを選択することで「対応期限」の検索条件の日付を自動設定する例を説明します。

図1に検索画面を示します。ラジオボタンで対応期限を選択できる操作となっています。

図1 検索画面

ラジオボタンを選択することで、絞り込み検索ができます。

図2 検索の実行(1)
図3 検索の実行(2)

上で紹介したサンプルアプリケーションを実現するモデルを図4に示します。

図4 モデル一覧

「対応期限」で用いる選択肢は次のとおりです。

図5 選択肢の一覧

「検索用日付」項目

ポイントは、"3日後", "5日後", "7日後" を表示するために「日付」項目とは別に「検索用日付」と「対応期限」という二つの項目を設定することです。「検索用日付」項目はラジオボタンとして用意された「対応期限」の値によって自動設定されるようにします。

「検索用日付」項目の初期値に式を設定します。「対応期限」の設定値によって検索対象日を自動設定します。

図6 初期値の設定

検索時:

IF(
  NOT(SELECTED(${day_for_search})),
  null,
  TODAY()
)

検索時(範囲検索の上限項目):

IF(
  NOT(SELECTED(${day_for_search})),
  null,
  IF(
    ${day_for_search#id}==1,
    MOVEDAY(TODAY(), 3),
    IF(
      ${day_for_search#id}==2,
      MOVEDAY(TODAY(), 5),
      MOVEDAY(TODAY(), 7)
    )
  )
)

「検索用日付」項目は、同じ検索画面に用意された「日付」項目に値がセットされていた場合、その値を転記するようにします。

図7 計算式の設定
${date}

「検索用日付」項目は入力時に隠し項目とします。

図8 入力制御 - 隠し項目の設定

「検索用日付」項目は出力時にも隠し項目とします。

図9 出力制御 - 隠し項目の設定

さらに「検索用日付」項目は検索画面でも隠し項目とします。

隠し項目ですが、実際には検索絞り込みに用いられます。検索値が「日付」や「対応期限」といった項目から自動設定されます。

また、検索画面でもラジオボタンとして操作できるよう「モデル参照 > 表示形式の切り替え」を空白にします。

図10 検索制御 - 隠し項目の設定

「対応期限」項目

「対応期限」項目は「検索条件」に「○」をつけていますが、実際の検索処理には用いません。ここで選択した値は、「検索用日付」項目に反映されるためです。よって「値をデータベースに保存する」の設定を解除します。

図11 値をデータベースに保存しない
検索条件に指定かつ、データベースに保存しない項目は、検索用のSQLに反映されません。検索条件の入力欄としてのみ利用できます。

「対応期限」項目も入力、出力で隠し項目とします。

図12 入力制御 - 隠し項目の設定
図13 出力制御 - 隠し項目の設定