初めまして、こんにちわ。
社内の機器を管理するアプリを作ろうとしております。
しかし、アプリ作成で困っております。ご質問させて下さい。
画像は、作成中のアプリの画面となっております。
画面は、『契約物件』と『端末一覧』の2画面です。
質問は、
・『契約物件画面』で(固有番号のA)と(各項目のB)が入力されている状態で
・『端末一覧画面』で(固有番号のA”)を入力すると
・『端末一覧画面』で(固有番号のB”)には、『契約物件画面』の(B)を参照して、
自動で項目が入力されるようにするには、どうすれば良いのでしょうか?
左側が、リース契約NOをKEY/IDとするいわゆる「契約マスタ」となるテーブルで、右側のテーブルにリース契約NOを入力するとデータをLOOKUPして表示、ということですね。
いくつか方法はございますが、まず右の表で、リース契約NOのフィールドから右に表示されるコラムをデータとして保存したいか?もしくはアプリ上に表示するだけでいい、ということで対応が変わります。
前者であれば、右のテーブル内にPHYSICALにテーブルを作成して下さい。データとしてキャプチャすることなく、単なる表示だけでいいということであれば、VIRTUAL COLUMNを作成しましょう。ここでは、前者、PHYSICALCOLUMNを利用するベースでご説明します。
まず、右の表のリース契約NOのFIELDをREFタイプに設定。参照先のテーブルを左の契約マスタとしてしていします。ISPARTOFの設定もONにしておいてください。
これで両テーブル間で親子の関係の設定完了です。
次の設定として、右のテーブルに入り、リース開始・リース終了等、マスタからデータをひっぱってきたいフィールドのAPPFORMULAを入力します。
ここでもいくつか異なる関数で実現できますが、最も簡単、頻繁に利用する関数での方法をご教示します。
まず「リース開始」のフィールドのAPP FORMULAに次の計算式を入力して下さい。
[リース契約No].[リース開始]
これだけです。
同じく、リース終了のフィールドには
[リース契約No].[リース終了]
二つのフィールド名をドット(.)でつなぐだけです。
これにより、まずREFタイプで設定したフィールドを参照し、そこから参照先のテーブルに侵入。参照先のデーブルにあるフィールドのデータをひっぱってきて表示せよ、という指示の関数となります。APPSHEETの世界では「DEREFERENCED」などとも表現される多くの場面で利用される手法です。
これにより右のテーブルでリース契約Noをドロップダウンから選択すると自動的にマスターから残りのデータを引っ張ってきて表示してくれるはずです。
上は、PHYSICAL COLUMNを利用してのケースで、データはスプレッドシート内に保存されます。
VIRTUAL COLUMNを用いても結果は同じですが、VIRTUALなので、スプレッドシートとは関係ない世界でアプリのCLIENT上にのみ表示されるということとなります。