管理人がみんなに伝えたい!!と思った知識や学びを気ままに書いています(^^)

【簡単設定!】入力制限を設定する方法

【簡単設定!】入力制限を設定する方法

本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。

本ブログでは新UI画面で内容をまとめています。

新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

新UI画面の説明

まずはじめに

本記事はこんな人におすすめ!!
  • Valid ifの基礎を勉強したい人
  • アプリを利用する人によって入力する値に制限を付けたい人
  • Valid ifに入力する関数の例を勉強したい人
本記事を読んで出来るようになること
  • Valid ifに関数を入力することで、アプリ開発者が欲しいデータを収集できる
  • Yes/NoとList の関数が理解できる

今回の記事内容は、アプリに入力される値に制限を付ける設定です。

アプリ開発者にとって想定外のデータが入力されるとそれを検知し、自動的に入力を弾くことが出来ます。

内容的には中級者以上の話になります。

この記事の読者の方は、ここに気づけるくらいアプリ開発に余裕が出てきた証拠(^^)

私がよく使うValid ifに送る関数や設定を記事にまとめましたので、参考にしてください。

それでは勉強していきましょう!


Valid ifとは?

Valid ifのイメージ

Valid ifは、DataペインのColumnタブのカラム値を編集する画面にあります。

valid ifの場所

Data ValidityにValid ifとInvalid value errorがあります。

Valid if:入力制限を判定する関数を入力する

Invalid value error:入力された値がエラーの時に画面に表示させるメッセージ

次に、Valid ifに入力が求められる関数を確認してみましょう。

valid ifの詳細

Valid ifに入力できる関数は2パターンあります。

  • はい か いいえ で答えることが出来るYes/No関数
  • 入力値を指定するリストを送るList関数

まずはこの基本をしっかりと抑えてください(^^)

appsheetがどんなタイプの関数を求めているかを理解することが上達への近道です!

それぞれの関数で代表的なものをまとめました

参考記事

オススメの入力制限

オススメの条件式

続いて、私がValid ifでよく使う設定をまとめました。

今回検証に用いたテーブルの関係性はこちら(^^)

データテーブルの説明

カラムは以下としました。

Validation テーブル
validation table
  • 入力者:ユーザーテーブルとRef関係を結びつけるカラム
  • 所属:[入力者].[所属]の関数で値を引っ張り出すためのカラム
  • 日付:データタイプDateのカラム
  • 入力制限の判定:Valid if の効果を確認するためのカラム
ユーザー テーブル
ユーザーテーブル
  • 名前:Label値として表示させるカラム
  • email:Key値として設定するカラム
  • 所属:[入力者].[所属]の関数で情報を紐つけるためのカラム

それでは検証していきましょう(^^)

登録されているデータをリストとして表示させる

ユーザーテーブル

まず、設定が一番簡単な入力して欲しい値をリストとして送る設定を説明します。

設定方法は非常に簡単です。

入力制限の検証

テーブル名[カラム名]

これをValid ifに入力するだけです。試しにVaild ifにユーザー[名前]を入力してみると・・

関数入力前
関数入力前

入力制限の判定カラムは、任意の値を入力することが可能です。

関数入力後
関数入力後

ユーザー[名前]の関数をValid ifに入力すると、入力値はボタンの選択肢になります。

ポイント!

Valid ifへの入力=入力制限なので、新たに項目を増やすことは出来ません。

新規の選択肢の追加を許す場合は、Suggested Valueにリストを送るようにしましょう(^^)

日付カラムの入力値によって対象カラムの入力を制限させる

日付入力制限のイメージ

続いて、データが入力される日付で入力制限を持たせる設定を作成してみましょう。

用いる関数はeoweek()関数です!

参考記事

今回は入力週の翌週水曜日以降をターゲットにしてみました(^^)

2022.7カレンダー

Valid ifに入力する関数は、以下を用いました。

eoweek関数の入力
[_this]>=(eoweek(today())+4)

この関数は今週末から4日を足した日(つまり来週の水曜日)以降の制限をかけています。

来週の月曜日が良ければ4を2に、来週の金曜日が良ければ4を6にすればOK!!

効果の検証
入力日を弾く画面

2022/07/20 以降の日付を入力しない場合、入力値が弾かれますが・・

入力成立の表示

関数の条件を満たす日付(来週の水曜日以降)だと入力を受け付けます(^^)

文字数と特定の文字が含まれているかどうかを判定する

文字列の検証イメージ

続いて、入力された値が取得したい文字列であるかを検証する関数を検討してみましょう。

こういった時に役立つ関数は、以下の関数です(^^)

  • len()関数:文字数を数える関数
  • contains()関数:文字列の中に対象の文字があるかを判定する関数
  • right()関数とleft()関数:文字列の◯番目に対象の文字があるかを判定する関数

別の記事でこれらの記事についてまとめています

参考記事

それでは関数を入力して検証してみましょう!

len関数とleft関数
and(len([_this])=5,left([_this],1)=9)

この関数は文字数が5、かつ文字列の始めは9であることを条件としています。

効果の検証
効果の検証1

文字列の始めが9でも、文字列が5文字以上であるためNG

効果の検証2

文字列が5文字でも、最初が9ではないためNG

効果の検証3

文字数が5、かつ文字列の始めが9である場合は、入力を受け付けてくれます(^^)

もう1つ試しに入力してみました。

携帯番号入力制限
and(len([_this])=11,not(contains([_this],”-“)))

この関数は文字数が11、かつ文字列の中にハイフン(-)を含めないことを条件としています。

効果の検証
入力エラー

携帯番号をハイフンありで入力すると弾かれますが

効果の検証5

ハイフン無しで携帯番号を入力すると受け付けてくれます(^^)

〇〇以上、〇〇以下を満たしているかを判定する

数字の大小を検証するイメージ

続いて、入力された数字が指定された範囲に入っているかを判定する関数を検証してみましょう。

関数の入力値
and([_this]<5,[_this]>=0)

この関数は入力される数字が0以上、5未満であることとしています。

効果の検証
入力値の検証1

入力値が5未満でないため入力が弾かれますが

効果の検証2

1だと入力値が0以上5未満であるため、入力値として受け付けてくれます(^^)

アプリユーザーによって入力値を変更させる

ユーザー権限の付与イメージ

最後に、アプリのユーザーによって表示される項目を動的に変更する設定をしてみます(^^)

こういった時に役立つ関数は以下の関数です(^^)

  • select()関数:対象となるユーザーのリストを返す関数
  • list()関数:リストを生成する関数
  • if()関数:条件分岐を2つ作ることが出来る関数
  • ifs()関数:条件分岐を2つ以上作ることが出来る関数

これらの関数については、参考記事で解説しています

参考記事

それでは関数を入力して検証してみましょう!

今回の記事では、所属カラムに着目して選択肢を作成してみました。

ifs関数の入力
ifs([所属]=開発部,list(“A型”,”B型”,”O型”),[所属]=営業部,list(“天秤座”,”山羊座”,”魚座”),[所属]=経理部,list(“読書”,”ドライブ”,”キャンプ”))

この関数は、アプリユーザーの所属が開発部、営業部、経理部で表示される選択肢を別のものに変更しています。

所属が開発部の場合
開発部の画面

所属が開発部のAさんは、選択肢がA型、B型、O型になります。

所属が営業部の場合
営業部の画面

所属が営業部のBさんは、選択肢が天秤座、山羊座、魚座になります。

所属が経理部の場合
経理部の画面

所属が経理部のCさんは、選択肢が読書、ドライブ、キャンプになります。


まとめ

以上、入力制限についてまとめた記事でした(^^)

入力制限をしたければValid ifに関数を入力すればいい

まずはこれを覚えておいてください。あとはそこに関数を送るだけ・・

この記事では汎用性が高い設定をまとめたつもりですが、他にもこんなのがあった!とか見つけたら記事を更新していきます。

応用を学びたい人はこちらの記事を参考にしてください

参考記事

記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。

わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!

勉強お疲れさまでした(^^)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA