検索する値を計算式で指定する

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

検索画面において「対応期限」という項目の検索を実行するにあたり、操作を容易にするために "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 出力制御-隠し項目の設定