Appsheetでリストの内容を動的に変える③

前書きページはこちら

今回は、リストをテーブルから参照する方法です。

今回の元データ。縦方向に選択肢を書きます。
入力シートは同じ。

やってみよう

まず、spreadsheetを作ったら、拡張機能→Appsheet→アプリ作成として、テンプレートを使わずに作ります。※1,2は2列法と同じです。

  1. テーブルを作る
  2. 入力シートのUXを作る
  3. DataのColumnsの設定をする

1.テーブルを作る

2.入力シートのUXを作る

Primary Viewsに入力シートのUXを追加します。

次に、人を選んだ際の入力画面を作ります。下の方に「入力シート_Detail」があるので、「Quick edit columns]に2つ追加します。

これにてUXは完了!

3.DataのColumnsの設定をする

ここで”入力シート”のリストにしたいcolumnをRefにします…)

ここでは、選んだ料理をRefにします。

Refに設定すると、自動で「Souece table」を選ぶ画面になるので、「元データ」を選択。そして、「選んだ料理」に数式を入力します。

書いてある通りですが、ifs関数で、[食べたい食種]を選んだ結果によって、select関数で、「元データ」シートの対応するColumnが返るようにしています。

そして、「元データ」のColumnを次のようにします。

Enumでなくても動作はします。

大元の「食種」にKEY,LABELともにチェックを入れます。そして、選択肢のTYPEをEnumにします。(しなくても動くけど…)。さらに、Regenerate structureでデータを読み直します。 最後にSAVEを忘れずに。

こんな感じで動きますが、動画にもあるように料理名の横に黄色の△が表示されてしまいます。(スマホで確認すると見えませんでした。)

この△が気持ち悪いですが…

これは、「元データ」のLABELに設定した列にないものにつくそうです。消し方は分かりません…。誰かご指導ください…。

以上になりますが、食種を追加したときに、それ用に列を追加、数式も修正が必要になります。まだまだ方法はあるはず…

終わりに

この方法だと、新しい項目の追加が結構面倒なのです…。詳細項目は横に見ていくので、食種に対して追加!とならず、全食種を入力するような画面になってしまいます。管理が面倒かも。

    コメントを残す

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