ノーコードアプリ開発ツールAppSheetを使ってゴルフスコア管理アプリを作ってみるシリーズ、今回は全6回の第3回、AppSheetでスコアやパーなどプレーのデータを記録する入力フォームをカスタマイズします。前回の第2回も、AppSheetでコースデータの入力フォームをカスタマイズしました。同じような作業もありますので、是非第2回もご覧ください。
【AppSheetでゴルフスコア管理】2:テーブルの設定とアプリ画面の入力フォームを複数ページに分割
ノーコードアプリ開発ツールAppSheetを使ってゴルフスコア管理アプリを作ります。テーブル設定と入力画面をページ分割するShow型の設定をして画面の見栄えを良くします。
AppSheetのUIが変更になりました
2022年10月よりAppSheetのUIが新しくなっていますが、このブログ記事のUIは更新前のものになっています。AppSheetではUIを新旧切り替えすることが可能です。記事の画像のUIと実際のUIが異なる場合はUIの切り替えを試してみてください。切り替えは以下のボタンを押すとできます。
何をカスタマイズする?
この回では、AppSheetの入力フォームのカスタマイズとして、以下の設定をしていきます。基本的にはコースデータの入力フォームのカスタマイズと同じです。
- Ref型を使って二つのテーブルを紐付け、参照できるようにする
- 他のテーブルのデータを参照して、データの初期値を設定する
- アプリ画面表示のカスタマイズ
テーブルの構成
スコアデータテーブルのカスタマイズに入る前に、テーブルの構成を確認しておきます。スコアデータテーブルは、プレー日やコース情報などの項目があるヘッダ部分と、各ホールのスコアを記録する部分に分かれます。
ヘッダ部分とスコア部分の境には空白列を入れ、ページ区切りとすることで、アプリ画面でもプレー日などの入力と各ホールのスコアデータ入力画面を分けることができます。
各ホールのスコアデータを記録する部分は次のようになっています。これでホールひとつ分です。
スコアデータとしては一般的なものを入れていますが、項目は「クラブの番手」等お好みで変更・追加することもできます。
なお、ホールひとつにつきこれだけの項目がありますが、これを18セット作る必要があります。スコアデータテーブル数が130になっているところにもご注目ください・・・
テーブルをカスタマイズして他テーブルのデータを参照する
では、スコアデータテーブルのカスタマイズして、コースデータをスコアデータテーブルで参照できるように設定します。
スコアデータとコースデータを紐付ける
最初に、スコアデータとコースデータの紐付けを行います。ゴルフをプレーすれば必ずコースデータが必要になります。「スコアデータ」テーブルの「ゴルフ場ID」項目をカスタマイズします。
まず、項目のデータ型を「Ref」に変更します。Ref型は他のテーブルを参照するデータ型です。
Ref型に変更すると、詳細設定画面が現れますので、参照テーブルを設定します。
「Source table」欄で紐付けするテーブルを指定します。これを紐つけるとどうなるか、アプリ画面で見てみます。
スコアデータ画面でゴルフ場の項目を見ると、リスト化されており、コースデータで登録されたゴルフ場名が表示されるようになっています。なお、表示されるデータは、テーブルでラベル指定がされている項目になります。ここでは、コースデータの「ゴルフ場名」をラベル指定しています。
テーブルの「LABEL?」列をチェックすることでラベルになります。AppSheetでアプリ構築すると、最初は自動でラベルが割り当てられます。思わぬ項目がラベル指定されていることもありますので、きちんと確認しておきましょう。
数式でパー値をコースデータから参照する
次に各ホールのパー値をコースデータより取得してスコアデータの各ホールに参照値として設定します。これにより、一度コースデータで各ホールのパー値を入力すれば、この値が画面に表示されるようになります。
コースデータはすでに「ゴルフ場ID」の項目でスコアデータと紐付されていますので、これを使ってコースデータの情報をスコアデータテーブルに呼び出します。Ref型の項目を使って、他のテーブルにあるデータを参照する、という形になります。
ここでは、1番ホールのパー値をコースデータから呼び出し、スコアデータの1番ホールのパー値として記録するように項目の数式を指定しました。
スコア値・パット値の項目に初期値を設定する
次に、スコア値に初期値としてパー値を設定します。これにより、スコアの入力が簡単になります。
パー値の設定と同じように、参照値の数式を入力しますが、数式欄ではなく、初期値「INITIAL VALUE」欄に入力します。
アプリ画面でも「スコア1」にパー値が自動で表示されるようになりました。これで、各ホールで一からスコアを入れる必要がなくなりました。
なお、例えば常にダブルボギーのスコアになるような場合は、数式で「[ゴルフ場ID].[パー1]+2」等調整することもできます・・・
さらに、パット値も初期値を設定しておきます。こちらは例えば、各ホールとも「2」としておきます。
スコア・パットはアプリ画面で、プラス・マイナスボタンを押すと増減させることができます。
ボタンの初期値設定
続いて、アプリに表示されるボタン(YES/NO)の初期値を設定します。
ボタンになっている項目は、フェアウェイ・オービー・バンカーです。これらは設定しておかなくても大丈夫ですが、毎ホール全部ボタンを押すのは手間がかかりますので、初期値を設定しておけば便利です。
フェアウェイボタンは、フェアウェイをキープできたか、オービーボタンはOBショットがあったか、バンカーボタンはバンカーに入ってしまったか、を表します。
従い、通常は、ウェアウェイ=Y、オービー=N、バンカー=Nであって欲しいところです。初期値もそのように設定します。
ボタンが表示されるYes/No型の項目は、Yes=True、No=Falseが値となります。
これで、ボタンは最初から押されている状態になりました。
ここまでで1番ホールの項目設定が完了しました。全部で18ホールありますので、残り17ホールも同じように、心を無にして繰り返し設定します・・・
アプリの入力画面をカスタマイズする
18番まで全て設定できましたでしょうか。お疲れ様でした。
次に、スコアデータの入力画面をカスタマイズします。まず、表示不要な「プレーID」は非表示にしましょう。コースデータの設定と同じく、「SHOW?」のチェックを外します。
次に、必須項目の設定をします。AppSheetの設定では、ほとんどの項目が必須項目になっています。
各ホールのスコアデータなどは初期値を設定していますので必須としておいても問題はありませんが、必須にしておくとアプリの動作に融通がなくなりますので、必須から外してしまっても良いと思います。一方、ゴルフ場IDはコース選択に必要ですので、必須にしておきます。
各項目の見出しは、必要に応じて変えることができます。変更しないと、テーブルの列の名前と同じものが表示されます。
変更する場合には最大18ホール分全て変更することになり、変更しなくても特に支障はありませんが、変更するとアプリっぽい感じが高まります。テーブルの「DISPLAY NAME」欄に表示名を入力します。
しかし、これも18ホール分入力するのは楽ではありませんね。テレビでも見ながら少しずつ入力しましょう。
次は何する?
次回は、仮想列を使ってスコアを集計・平均値を計算してみます。これがないと、スコアが分からないですからね。
【AppSheetでゴルフスコア管理】4:仮想列を使って集計・平均を計算
ノーコードアプリ開発ツールAppSheetを使ってゴルフスコア管理アプリを作ってみるシリーズ、今回は第4回、仮想列を使って合計・平均値を計算します。
AppSheetの参考図書
ノーコードプログラミングって何だっけ?結局AppSheetって何なんだ?という方に、こちらの参考図書もどうぞ!
0 件のコメント:
コメントを投稿