AppSheetで特定の値を元に列の編集可否を制御

以前作ったアプリでは、Addボタンをステータスの値を元に表示非表示を関数で制御出来ました。現在また別の社内向けアプリを作ってるわけですが、同じように今度は「ステータスの値が完了の場合は、編集できないようにしてほしい」という事だったので、Showを関数制御した時同様に、今度はEditableを制御してみようと思います。

今回利用するサンプル等

今回はシンプルなシートで、status列の列は完了、未完了の2つのみ。この値を変更したら、propの入力欄の入力可否を制御するのが今回の目的になります。

通常はここの設定はチェックボックスなのですが、数式で制御することが出来ます。

図:statusの値を元にpropの入力を制御します。

設定してみる

設定変更してみる

status欄はどちらかを選択するEnum型になっています。そして、その制御先であるprop列はデフォルトではチェックボックスになっていますが、右の方にあるフラスコをクリックすると、数式入力になります。ここで以下の数式を入れてみます。

  1. Dataのシートに於いて、prop列の隣の鉛筆マークをクリックする
  2. update behaviorの中にあるEditableの右側にあるフラスコアイコンをクリックする
  3. 数式入力になるのでクリックする
  4. 以下のような数式を入力する
  5. Doneをクリックして閉じる。

これでロジックは構築完了です。

図:フラスコをクリックすると数式入力となる

図:数式を入力して制御をする

使ってみる

さて、これで仕掛けは終わったので、データの編集画面を開いてみます。適当なレコードを開いて、Editボタンをクリックします。この時のstatus欄の値の変更によって、入力欄が入力可になったり不可になるハズです。

数式でいかようにも制御ができるので、フォームを構築する時の選択条件によって分岐させて、入力不可にしたりといったケースで非常によく使うパターンです。もちろん、EditableではなくShowのほうを制御する方法も同じ手法になるので、入力可否ではなく表示・非表示にしたほうが良いケースもあります。

非常に基礎的なテクニックなので覚えておいて損はありません。

図:statusの選択で入力可否が制御された

AppSheetで、特定列の値を元に別の入力欄の入力可否を制御する

関連エントリー

AppSheetのRelated xxxxのAddボタンを非表示にしたい

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)