検索する値を計算式で指定する
最終更新日: 2022年3月10日
R8 | R9
検索画面において「対応期限」という項目の検索を実行するにあたり、操作を容易にするために "3日後", "5日後", "7日後" といったラジオボタンを選択することで「対応期限」の検索条件の日付を自動設定する例を説明します。
図1に検索画面を示します。ラジオボタンで対応期限を選択できる操作となっています。
ラジオボタンを選択することで、絞り込み検索ができます。
上で紹介したサンプルアプリケーションを実現するモデルを図4に示します。
「対応期限」で用いる選択肢は次のとおりです。
ポイントは、"3日後", "5日後", "7日後" を表示するために「日付」項目とは別に「検索用日付」と「対応期限」という二つの項目を設定することです。「検索用日付」項目はラジオボタンとして用意された「対応期限」の値によって自動設定されるようにします。
「検索用日付」項目の初期値に式を設定します。「対応期限」の設定値によって検索対象日を自動設定します。
検索時:
検索時(範囲検索の上限項目):
「検索用日付」項目は、同じ検索画面に用意された「日付」項目に値がセットされていた場合、その値を転記するようにします。
「検索用日付」項目は入力時に隠し項目とします。
「検索用日付」項目は出力時にも隠し項目とします。
さらに「検索用日付」項目は検索画面でも隠し項目とします。
また、検索画面でもラジオボタンとして操作できるよう「モデル参照 > 表示形式の切り替え」を空白にします。
「対応期限」項目は「検索条件」に「○」をつけていますが、実際の検索処理には用いません。ここで選択した値は、「検索用日付」項目に反映されるためです。よって「値をデータベースに保存する」の設定を解除します。
検索条件に指定かつ、データベースに保存しない項目は、検索用のSQLに反映されません。検索条件の入力欄としてのみ利用できます。
「対応期限」項目も入力、出力で隠し項目とします。
例
定義方法
「検索用日付」項目
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}
「対応期限」項目
ワンポイント