AppSheetお試し1「スプレッドシートから生成してみる」の続きです。
と、ここでサンプルデータが2015年10月ってのは動作確認でクソ面倒だと気づきました。
ので2020年7月にデータを書き換えて再生成しました。あれ?WARNING出てる。
Table ‘台帳’ has an implicit (RowNumber) key — if multiple users insert or delete entries concurrently, data loss can occur. Updates may apply to the wrong record or could fail entirely on some data sources.
IDを用意してないのでRowNumber(行番号)がKeyに使われるためです(前回も出ていたはずですがすぐに削除したので気づきませんでした)
複数のユーザが同時にデータ更新した場合にデータの損失が発生する可能性があります。
IDについてAppSheetでは連番は基本不可でUNIQUEID()という関数でランダムな文字列を生成します。
シートに’ID’列を追加して同じルールで埋めておきたいところ。
『Manually Generating UNIQUEID() Key Values』(https://help.appsheet.com/en/articles/1726606-manually-generating-uniqueid-key-values)
を参考にやっておきましょう。
データソースの構造が変化したのでエラーになります。
変化をアプリ側に反映させるにはDataのColumnsタブで対象テーブルを展開して
「Regenarate Structure」をクリックします。
「Are you sure?」に変わりますので(確認して)クリック。
無事’ID’列が追加されました。が、WARNINGは解消していません。’ID’をKeyに変更する必要がありますね。
というかWARNING増えてる。いままで気づいてなかったのですが、’出費’列に関数が紛れ込んでいるようです。
面倒くさくなったのでシートに残っている関数を潰してからアプリの作り直すことにします(結局)
WARNING、消えました。
AppSheetさんは賢いのでIDっぽい列をKeyにしてINITIAL VALUEにUNIQUEID()を設定してくれますし、日付っぽかったら型をDateにしてINITIAL VALUEにTODAY()を設定してくれます。
ざっとカラムの属性を調整します。
‘ID’はユーザーからは見えないほうがいいのでSHOW?を外してLABEL?も外しておきましょう。
おお、’種別’がEnumになってる!本当に頭いいなぁ。とりあえずLABEL?は’種別’にしとこう。
‘出費’をPriceにして、備考をLongTextにと
‘出費’が$になっちゃいました。あと、日本円だと小数点以下はいらないかな。
矢印つけたところから詳細設定用のダイアログが開きます。調整しましょう。
Numeric digitsとCurrency symbolを変更しました。
というところで忘れてたのに気づいて’出費対象”場所”給油量”備考’をのぞいてREQUIRE?を設定しました(_RowNumberも元のまま外しときます)
編集画面で’出費’など必須にした項目に*がついているのを確認できます。
せっかくLongTextにしたので試しで’備考’に改行をいれてSaveしてみました。
次はデータを追加してみましょう。
‘種別’なんですがEnumにしてくれてるので選択になります。
選択肢は画面上からも追加できるようですが、製作時の選択肢追加や順序変更などは’種別’詳細設定用のダイアログで可能です。
Enumの話はコレくらいにしておいて、データを入力してSaveしましょう。
Tags: AppSheet