検索する値を計算式で指定する
最終更新日: 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}
隠し項目の設定
ワンポイント
「対応期限」項目
検索条件ではあるが、実際の検索処理には用いない
ワンポイント
隠し項目の設定