入力チェック最終更新日: 2021年7月1日

条件判断

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

条件判断

範囲チェック

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

範囲チェック

複数のルールを列挙することもできます。次の例は、在庫は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 だった)場合をエラーとするものです。

商品コードのチェック

実行

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

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

データの重複チェック

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

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

実行

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

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