入力チェック

最終更新日: 2022年6月16日

入力チェックスクリプトの動作範囲

実行タイミング "入力チェック" のスクリプトは次の動作(機能)で実行されます。

画面機能 タイミング
登録 入力チェック
更新
CSVアップロード更新
一覧更新 スプレッドシート
一覧更新 (対応なし)
検索 入力チェック(検索) (*1)

(*1) 注意

(1) 検索条件に入力チェックを行う場合、検索条件が有効になっている必要があります。(検索条件ではない項目への操作は、実行時にエラーになります。)

(2) 同時に初期値をセットすることを推奨します。初期値がない場合、検索画面を開くと入力チェックによって常にエラーメッセージが表示されることになります。

条件判断

入力チェックは「もし〜ならば」ブロックを使います。条件に合致しなかった場合は「エラーメッセージ」を表示するブロックを配置します。

条件判断

必須チェック

文字列型

顧客モデルの氏名項目に必ず値が入っていること、を実現したブロックの例です。ISBLANK関数(文字列型)を使います。

必須チェック 文字列型

日付型

顧客モデルの面会日項目に必ず値が入っていること、を実現したブロックの例です。ISBLANK関数(日付型)を使います。ISBLANK関数は引数に文字列型をとるパターンと、日付型をとるパターンがあります。ブロックの色が異なっています。

必須チェック 日付型

数値型

顧客モデルの年齢項目に必ず値が入っていること、を実現したブロックの例です。ISEMPTY関数(数値型)を使います。

(準備中)

モデル参照型

モデル参照(リストボックス、ラジオボタン、チェックボックス、検索、ルックアップ)ではWagbyのモデル参照関数を使います。

必須チェック モデル参照項目

整理すると次のようになります。

項目の型 スクリプト
文字列型 ISBLANK(文字列型)
数値型 ISEMPTY(数値型)
日付型 ISBLANK(日付型) ※文字列型を引数にとるISBLANKとは別。
モデル参照型 リストボックス SELECTED(モデル参照項目)
モデル参照型 ラジオボタン SELECTED(モデル参照項目)
モデル参照型 チェックボックス CHECKED(モデル参照項目)
モデル参照型 検索画面 ISEMPTY(モデル参照項目)
モデル参照型 ルックアップ ISEMPTY(モデル参照項目)

範囲チェック

商品モデルの在庫数に負の数を設定できないようにしたブロックの例です。

範囲チェック

複数のルールを列挙することもできます。次の例は、在庫は0個以上かつ1,000個までという判定を行っています。それぞれでエラーメッセージを変えています。

複数の範囲チェック(1)

「かつ/または」という接続を使って、複数のルールをまとめることもできます。次の例は、一度に注文できる注文数の範囲をチェックしています。この場合、エラーメッセージは共通になります。

複数の範囲チェック(2)

他項目比較チェック

数値型と日付型項目について、ある項目の値が(同じモデル内の)別の項目の値よりも「大きい」「小さい」といった条件を指定することができます。

次の例は予定モデルの開始日と終了日を比較し、開始日>終了日であればエラーにするものです。

他項目比較チェック

さらに「開始日は本日日付以降である」というルールを加えた例です。

他項目比較チェック(2)

「開始日が本日より30日以前の場合、入力が行えない」というルールは次のようになります。今日が5月18日のとき、一ヶ月より前(4月17日より前)は入力できますが、4月18日から5月17日まではエラーになります。

他項目比較チェック(3)

日付を DATE 関数でシリアル値とすることで「+30」のような操作が可能になります。

利用文字チェック

指定した文字を含むかどうか

予定モデルの予定コード項目は少なくとも一つ以上、0から9の文字が含まれていること、というルールを用意します。

指定した文字が含まれているかどうかのチェック

ISINCLUDE関数は、第一引数で指定した文字列に、第二引数に指定した文字が含まれているかどうかを判定します。戻り値はtrueまたはfalseです。

この ISINCLUDE 関数のように true/false を返す関数は、false と一致するというブロックに代わって「ではない」ブロックを使って表現することもできます。

指定した文字が含まれているかどうかのチェック(2)

予定コード項目に半角スペースを含めることはできない、というルールも同じく ISINCLUDE を使って実現できます。
(図ではわかりにくいですが「ダブルクォーテーション + 半角スペース + ダブルクォーテーション」となっています。)

指定した文字が含まれていないかどうかのチェック

コード体系ルールの判定

商品モデルの商品コード項目は、AからEもしくは0から9の文字の組み合わせというルールを用意します。

商品モデル

関数 FINDRE は、第一引数で指定した文字列が、第二引数に含まれていればその位置(数値)を返します。含まれていない場合は "-1" を返します。

第三引数は(第二引数の文字列の)何文字目からを判定対象とするかを指定するもので、通常は "1" とします。

なお、第一引数には正規表現式を指定することもできます。以下の例は先頭文字がAからEのいずれかの文字で、2文字目以降は0から9の数値から構成されることを意味しています。そのようなパターンがみつからなかった(そのパターンの文字列位置が -1 だった)場合をエラーとするものです。

商品コードのチェック

実行

商品モデルの登録または更新で、商品コードが定められたルールに準拠していない場合はエラーとなります。

誤った商品コードを入力した

データの重複チェック

顧客モデルのメールアドレスが、すでに登録済みであればエラーにするというスクリプトの例を示します。

メールアドレスの重複チェック

実行

すでに登録済みのメールアドレスで、別の顧客データを作成しようとするとエラーになります。

登録済み顧客データ
使用済みのメールアドレスはエラーとする

チェックボックスの選択数の上限チェック

チェックボックスの選択された数を制限することができます。ここでは選択できる上限を3つまで、とした例を示します。

チェックボックスの選択された数を制限する

設定方法

顧客モデルの「地区」という項目をモデル参照(チェックボックス)としています。

顧客モデル

CHECKED関数を使って、選択されているチェックボックスの数を知ることができます。

CHECKED関数を利用した例

仕様

エラーメッセージ

同じエラーメッセージは、まとめられます。例えば異なる項目「項目1」「項目2」に対して同じエラーメッセージ "エラーです" を設定した場合、それぞれがエラーの場合でも画面に表示されるエラーメッセージは1つだけになります。つまり同じエラーメッセージが重複して2つ以上、画面に表示されることはありません。