練習で、記録簿としてつけているスプレッドシートの内容把握の為のアプリを作成しています。
過去のものはKEYをA列に手動で入れ、KEY設定の初期値をUNIQUEID()と入力しています。
アプリ側だけで追記するのであれば問題ないのですが、スプレッドシート側で追記することもあり、
その場合、KEY列が空欄となってしまい、Appsheet側ではうまく反映されていない気がします。
また、こちらの事情ですが、スプレッドシートは自動で最下行に移動するようGASで組んでいまして、
できれば先に入力しておきたくないという事情もあり、どうにか方法がないか考えているのですが、
Appsheet側での何かできることはないでしょうか。
ざっくりとわかりにくい質問で申し訳ありません。
もし、できることがあれば、ご教授いただけないでしょうか。
よろしくお願いいたします。
辻様
ありがとうございます。
想定されていない使用方法であること、理解しました。
KEYを複数選択肢、Virtual COLUMNが自動生成されることも理解できておらず、大変勉強になりました。
ありがとうございます。
Appsheet は、そのデータの入力をAppsheetとなることを前提としていますので、その前提が逆となる場合を想定していません。ご記載のケースでは、シートにユーザーが直接データを入力し、そのデータをAppsheetから閲覧したり修正したいというご要望ですが、ご指摘の通り、SHEET側にAppsheet内でKEY/IDとして設定するCOLUMNに値をおくらない限りAPPSHEETではそのROW自体を認識しません(できません)。KEY/IDに値を入れることはAppsheetに限らずDBを扱ううえで必須要件となりますが、考慮しうるWORKAROUNDとしましては、SHEET内にPHYSICALにKEY にあたるカラムは持たせずに、APPSHEET側でVirtual COLUMNとして生成、管理する手法です(あまりお薦めできませんが)。
例えば、シート上にCOL1, COL2, COL3というカラムがあるとします。このカラム3つ(2つでも3つでも4つでも構いません。)の合成値が「常にUNIQUE」であるというのが事前にわかっているのであれば、この合成地をIDとしてみなす。
Appsheetのカラム編集に入り、この3つのKEYをKEYとして選択。(3つのカラムのKEYのチェックボックスを選択した状態に)
右上のSAVEボタンで編集内容を保存。
保存されると
_ComputedKey
というVIRTUAL COLUMNが生成されて、KEYとして選択されているはずです。Appsheet側でVirtualにKey COLUMNをこれらのカラムの合成VALUEのSTRINGとして設定完了。
スプレッドシート側で例えば、複数のROWでこの合成値が同じ値を返してしまうような場合は想定していませんのでご注意ください。