モデル参照
最終更新日: 2023年7月31日
R8 | R9
項目に値が入っているかどうかを判定します。未入力の場合は true を返します。入力済の場合は false を返します。
数値型で非必須項目かつ未入力の場合の判定が行えます。参照連動型項目にも対応しています。
例:参照連動型項目 refitem1 が未入力かどうかをチェックする。
ISEMPTY
ISEMPTY(項目名)
IF(ISEMPTY(${refitem1}), "未入力です","値があります")
ISBLANK関数との違い
ISBLANKの方が実行パフォーマンスが良いです。単純に値がNULLかどうかを判定する場合はISBLANKの利用を推奨します。ISEMPTYは数値型項目の未入力判定や参照連動項目にも対応していますが、その分、内部処理が複雑になっています。
更新履歴
- R9.2.2より検索・一覧画面のボタン表示条件で検索条件の値を利用できるようになりました。
ISEMPTY(${cond.sokocd})
のように接頭語 "cond." を含めると検索条件の値を利用します。 - R9.2.2より参照連動項目にも #id 指定を含めることができるようになりました。参照連動項目の連動元が複合主キーの場合は #id1, #id2 と指定します。
SELECTED
SELECTED(リストボックス/ラジオ型項目名)
リストボックス、ラジオボタンの未選択を判定します。 引数に指定した項目の値が選択されていた場合に true を返します。そうでなければ false を返します。
モデルに含まれるリストボックス/ラジオ型項目、またはSUMやCOUNTなどの条件部に用いることができます。条件部のみ、外部キー子モデルの要素を指定することができます。
例:リストボックス項目 mrefmodel の選択状態を判定する
IF(SELECTED(${mrefmodel}), "選択されています","未選択です")
例:繰り返しコンテナ内のリストボックス項目 mrefmodel の選択状態を判定する
IF(SELECTED(${cont/cmrefmodel}), "選択されています","未選択です")
例:外部キーの子モデルの条件部にて、選択されていないものを数える
COUNT(${Child_lp}, "SELECTED(${Child_lp.mrefmodel})==false")
CHECKED
CHECKED(チェックボックス型項目名)
チェックボックス項目の、選択されている数をかぞえます。戻り値は整数型です。
モデルに含まれるチェックボックス型項目、またはSUMやCOUNTなどの条件部に用いることができます。条件部のみ、外部キー子モデルの要素を指定することができます。
例:チェックボックス型項目の選択肢を数える。
CHECKED(${checkboxitem})
例:親モデル側で、外部キー子モデルのチェックボックスが一つ以上選択されている子モデルのみを数える。ここではCHECKED関数を直接、記述しない。
このため次の例では子モデル側に、チェックボックスの数を記録する項目 checkednum を用意しています。 また、同項目を一覧表示に加え、かつ隠し項目としています。
COUNT(${Child_lp}, "${Child_lp.checkednum}>0")
EXACT
EXACT(チェックボックス型項目名, 値)
第一引数のチェックボックス型項目で最初に選択された値が第二引数の値と等しいかどうかを返します。戻り値は boolean 型(真/偽) です。
例:チェックボックス型項目でチェックされた最初の選択肢の(内容部が)A かどうかを調べる。
EXACT(${checkboxitem}, "A")
EXACT(${checkboxitem#content}, "A")
例:チェックボックス型項目でチェックされた最初の選択肢の(ID部が)1000 かどうかを調べる。
EXACT(${checkboxitem#id}, 1000)
この関数は文字列処理でも説明しています。
CONTAINS
CONTAINS(チェックボックス型項目名#array, 取得パターン, 値)
第一引数のチェックボックス型項目で複数の選択された値が第三引数の値と等しいかどうかを返します。戻り値は boolean 型(真/偽) です。第一引数は項目名の後ろに "#array" を付与する必要があります。第二引数には "id" または "content" を指定します。それぞれ ID 部か内容部かを指定します。
例:チェックボックス型項目でチェックされた選択肢に(ID部が)1000 が含まれているかどうかを調べる。
CONTAINS(${checkboxitem#array}, "id", 1000)
例:チェックボックス型項目でチェックされた選択肢に(内容部が)"A" が含まれているかどうかを調べる。
CONTAINS(${checkboxitem#array}, "content", "A")
ISNULL
ISNULL(項目名)
指定した項目の、値が存在しない(未設定)かどうかを調べます。
この関数はSUMやCOUNTなどの条件部にのみ、用いることができます。
例:親モデル側で、外部キー子モデルのストア参照項目(参照先は日付型)attendance_date が未設定のデータを数える。
COUNT(${attendance_lp}, "ISNULL(${attendance_lp.attendance_date})")
例:繰り返しコンテナ内のストア参照項目(参照先は日付型)cont/cdate が未設定のデータを数える。
COUNT(${cont}, "ISNULL(${cont/cdate})"})
制約
- 参照先モデルが複合キーの場合、これらの関数は利用できません。
- 入力チェック(ユーザー定義式)ではCOUNT,SUMなどの集合演算を行うことができません。そのためCOUNT,SUM関数の条件部にSELECTEDやISNULL関数を指定するような使い方もできません。