入力チェック
最終更新日: 2022年6月16日
実行タイミング "入力チェック" のスクリプトは次の動作(機能)で実行されます。
(1) 検索条件に入力チェックを行う場合、検索条件が有効になっている必要があります。(検索条件ではない項目への操作は、実行時にエラーになります。)
(2) 同時に初期値をセットすることを推奨します。初期値がない場合、検索画面を開くと入力チェックによって常にエラーメッセージが表示されることになります。
入力チェックは「もし〜ならば」ブロックを使います。条件に合致しなかった場合は「エラーメッセージ」を表示するブロックを配置します。
顧客モデルの氏名項目に必ず値が入っていること、を実現したブロックの例です。ISBLANK関数(文字列型)を使います。
顧客モデルの面会日項目に必ず値が入っていること、を実現したブロックの例です。ISBLANK関数(日付型)を使います。ISBLANK関数は引数に文字列型をとるパターンと、日付型をとるパターンがあります。ブロックの色が異なっています。
顧客モデルの年齢項目に必ず値が入っていること、を実現したブロックの例です。ISEMPTY関数(数値型)を使います。
(準備中)
モデル参照(リストボックス、ラジオボタン、チェックボックス、検索、ルックアップ)ではWagbyのモデル参照関数を使います。
整理すると次のようになります。
商品モデルの在庫数に負の数を設定できないようにしたブロックの例です。
複数のルールを列挙することもできます。次の例は、在庫は0個以上かつ1,000個までという判定を行っています。それぞれでエラーメッセージを変えています。
「かつ/または」という接続を使って、複数のルールをまとめることもできます。次の例は、一度に注文できる注文数の範囲をチェックしています。この場合、エラーメッセージは共通になります。
数値型と日付型項目について、ある項目の値が(同じモデル内の)別の項目の値よりも「大きい」「小さい」といった条件を指定することができます。
次の例は予定モデルの開始日と終了日を比較し、開始日>終了日であればエラーにするものです。
さらに「開始日は本日日付以降である」というルールを加えた例です。
「開始日が本日より30日以前の場合、入力が行えない」というルールは次のようになります。今日が5月18日のとき、一ヶ月より前(4月17日より前)は入力できますが、4月18日から5月17日まではエラーになります。
日付を DATE 関数でシリアル値とすることで「+30」のような操作が可能になります。
予定モデルの予定コード項目は少なくとも一つ以上、0から9の文字が含まれていること、というルールを用意します。
ISINCLUDE関数は、第一引数で指定した文字列に、第二引数に指定した文字が含まれているかどうかを判定します。戻り値は
この ISINCLUDE 関数のように true/false を返す関数は、false と一致するというブロックに代わって「ではない」ブロックを使って表現することもできます。
予定コード項目に半角スペースを含めることはできない、というルールも同じく ISINCLUDE を使って実現できます。
商品モデルの商品コード項目は、AからEもしくは0から9の文字の組み合わせというルールを用意します。
関数 FINDRE は、第一引数で指定した文字列が、第二引数に含まれていればその位置(数値)を返します。含まれていない場合は "-1" を返します。
第三引数は(第二引数の文字列の)何文字目からを判定対象とするかを指定するもので、通常は "1" とします。
なお、第一引数には正規表現式を指定することもできます。以下の例は先頭文字がAからEのいずれかの文字で、2文字目以降は0から9の数値から構成されることを意味しています。そのようなパターンがみつからなかった(そのパターンの文字列位置が -1 だった)場合をエラーとするものです。
商品モデルの登録または更新で、商品コードが定められたルールに準拠していない場合はエラーとなります。
顧客モデルのメールアドレスが、すでに登録済みであればエラーにするというスクリプトの例を示します。
すでに登録済みのメールアドレスで、別の顧客データを作成しようとするとエラーになります。
チェックボックスの選択された数を制限することができます。ここでは選択できる上限を3つまで、とした例を示します。
顧客モデルの「地区」という項目をモデル参照(チェックボックス)としています。
同じエラーメッセージは、まとめられます。例えば異なる項目「項目1」「項目2」に対して同じエラーメッセージ "エラーです" を設定した場合、それぞれがエラーの場合でも画面に表示されるエラーメッセージは1つだけになります。つまり同じエラーメッセージが重複して2つ以上、画面に表示されることはありません。
入力チェックスクリプトの動作範囲
画面機能
タイミング
登録
入力チェック
更新
CSVアップロード更新
一覧更新 スプレッドシート
一覧更新
(対応なし)
検索
入力チェック(検索) (*1)
(*1) 注意
条件判断
必須チェック
文字列型
日付型
数値型
モデル参照型
項目の型
スクリプト
文字列型
ISBLANK(文字列型)
数値型
ISEMPTY(数値型)
日付型
ISBLANK(日付型) ※文字列型を引数にとるISBLANKとは別。
モデル参照型 リストボックス
SELECTED(モデル参照項目)
モデル参照型 ラジオボタン
SELECTED(モデル参照項目)
モデル参照型 チェックボックス
CHECKED(モデル参照項目)
モデル参照型 検索画面
ISEMPTY(モデル参照項目)
モデル参照型 ルックアップ
ISEMPTY(モデル参照項目)
範囲チェック
他項目比較チェック
利用文字チェック
指定した文字を含むかどうか
true
またはfalse
です。
(図ではわかりにくいですが「ダブルクォーテーション + 半角スペース + ダブルクォーテーション」となっています。)
コード体系ルールの判定
実行
データの重複チェック
実行
チェックボックスの選択数の上限チェック
設定方法
仕様
エラーメッセージ