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

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

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

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

検索画面

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

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

定義方法

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

モデル一覧

「対応期限」で用いる選択肢は次のとおりです。今回は「選択肢モデル(初期データ固定)」としています。

選択肢の一覧

サンプルの検索モデルは4つの項目を用意しています。ポイントは、"3日後", "5日後", "7日後" を表示するために「日付」項目とは別に「検索用日付」と「対応期限」という二つの項目を設定することです。

サンプルモデル

「検索用日付」項目

「検索用日付」項目はラジオボタンとして用意された「対応期限」の値によって自動設定されるようにします。

検索の初期値

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

初期値の設定

検索時:

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)
    )
  )
)

自動計算式による転記

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

計算式の設定
${date}

隠し項目の設定

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

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

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

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

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

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

ワンポイント

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

「対応期限」項目

検索条件ではあるが、実際の検索処理には用いない

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

値をデータベースに保存しない

ワンポイント

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

隠し項目の設定

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

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

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

検索制御-表示形式の切り替え