管理人がみんなに伝えたい!!と思った知識や学びを気ままに書いています(^^)

【誰でも簡単】データタイプrefの機能について

【誰でも簡単】データタイプrefの機能について

本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。

本ブログでは新UI画面で内容をまとめています。

新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

新UI画面の説明

まずはじめに

本記事はこんな人におすすめ!!
  • ref機能とは何かを知りたい人
  • enumによる値の登録では数が多すぎて困っている人
本記事を読んで出来るようになること
  • 複数のテーブルに親子関係を持たせて紐ついているデータを遡る

今回の記事内容は、データタイプrefについてです。

appsheetにあるとても便利な機能で、ref関係を結んだテーブル間ではお互いに自由にカラム情報を取得することが可能です。

簡単な設定で高度なアプリのような挙動を演出できるので、特にappsheetの基本を学びたい方は参考にしてください。

また、本記事でぜひマスターして欲しいref構文2つ紹介しています。使い方はとてもシンプルです(^^)

それでは勉強していきましょう!


ref機能とは?

ref機能の説明

冒頭でも書きましたが、データタイプrefの最もパワフルな機能として

親子関係を結んだテーブル間では、そこに紐ついている情報を遡ることが出来る

これに尽きると思います。

この効果を実感するためには、まずデータを管理するテーブルを適切な状態にすることが大切です。

このデータを管理するテーブルの構成がきれいに作れるようになるとrefの機能を最大限に活かすことが可能です(^^)

テーブル間でrefを結ぶときのテーブルの構成は以下の2パターンを覚えておきましょう(^^)

  • 入力を促す選択肢をまとめたマスターテーブルを用意する(参照データを定期的に更新することが可能)
  • 親テーブルに紐付くデータとして使用(親テーブルのKey値に紐付く情報として記録)

ref関係を結ぶならこのどちらかのテーブル構成に該当するはずです。

マスターテーブルの用意は何となくイメージが付くと思うので、親テーブルに紐付くデータとして使用する場合とはどういう意味かを、見積書の作成を例として説明をします。

テーブル関係のマインドマップ

ref関係を使いこなすには全体のテーブル情報を俯瞰視することが大事です。

自分がどういったことをやりたいのか一度書き出してみるといいですよ(^^)

おすすめの思考の可視化ツールはこちら

続いて、各シートのカラム情報を説明します。

見積書シート
見積書シートのカラム説明

IDと見積書番号のみ用意

見積もり詳細シート
見積もり詳細シートのカラムの説明

見積もりIDは見積書シート、品目と価格は品目シートとRef関係を結びます

品目シート
品目シートのカラム説明

見積もり詳細シートに値を送るシート

これら3つのシートを用いて見積書作成アプリを作成してみたいと思います。

初心者の人がよくやりがちなミスとして、1つのシートに全ての情報を詰め込む ことが挙げられます。

今回の場合だと見積書シートの中に見積もり詳細(明細)を入れてしまうでしょう・・

新規登録したデータに今後複数の情報を組み込みたいか?

この質問にYesならシートを分ける(refの関係を持たせる)ほうがいいと思います(^^)

例えば

1つの見積書に複数の明細を付ける場合(本記事で実演)

取引先の会社名および従業員情報をリスト化

データを登録したユーザーのメールアドレスを取得し、ユーザー別で色々な管理がしたいとき

こういったユースケースを想定している場合は、タイプrefでデータを管理しましょう!


データの取り込みとデータタイプの設定

作成したスプレッドシートの情報をappsheetに取り込みます。

それぞれのシートの設定について、カラムのデータタイプの設定が必要です。

以下の設定を参考にして読者の方も検証してみてください。

appsheetでのアプリ開発経験が少ない人はまずはこちらを参考に

参考記事

見積書シートについて

このシートについては特に設定することはありませんが、appsheetでよく設定する意味を持たないカラムを非表示にする ことをやっておきましょう(^^)

IDカラムの設定
IDカラムの設定

カラム設定のShow?のチェックを外します

見積もり番号カラムの設定
見積書番号カラムの設定

続いてもう1つのカラム値:見積書番号のLABEL?にチェックを入れておきましょう。

データテーブルの代表カラム

LABEL設定は、このようなイメージを持ってもらって大丈夫です(^^)

これで見積書シートの設定は完了です。

見積もり詳細シートについて

続いて、見積もり詳細シートの設定です。

IDカラムの設定
IDカラムの設定

見積書シートと同じくIDカラムのShow?のチェックを外します。

見積もりIDの設定
見積もりIDの設定

Typeをrefにして、Source tableを見積書

品目カラムの設定
品目カラムの設定

Typeをrefにして、Source tableを品目

価格カラムの設定
価格カラムの設定

まずはデータタイプをPriceにします。

価格カラムの詳細設定

次に赤枠で囲まれた部分を設定します。

refの構文

App formulaに[品目].[価格]と入力

ref構文のポイント
ref構文の説明

タイプrefに設定したカラムに ” . “(ドット)を繋げ、refの参照テーブルのカラムを引っ付けることでそのカラムの情報を取得することが可能です。

価格カラムに入力したいのは、品目シートにある品目の価格 → [品目] . [価格]

” . “(ドット)は ひらがな “の” を意味すると覚えておきましょう!

このref構文がこの記事で伝えたい構文の1つです。ぜひマスターしてください!

個数カラムの設定
個数カラムの設定

TypeをNumberに変更します。

残る品目シートについては、特にいじらなくて大丈夫です(^^)


見積書明細の作成方法

見積書の作成の流れ

今回は、以下の流れで見積書に明細を加えていくのがいいかな?と思います。

アプリの作り方の部分も含めて参考にしてください(^^)

新規で見積書を発行するViewを作成する
form Viewの作成

UX → Views → View typeのformを選択

この設定は新規でデータを登録させるときの基本設定です。

View nameに分かりやすい名前をつけるのがポイントです(^^)

データの新規登録Viewの選択

appsheetでアプリ開発をしたことがある人ならご存知だと思いますが、画面右下の+ボタンを押しても先ほど作成したform Viewと同じ画面に遷移します。

ここはアプリ開発者、使用者の好みのところなのでどちらでも大丈夫です。

見積書シートにデータを新規登録
見積書に新規登録する画面
新規で登録した見積書のdetail Viewからaddをクリックし、明細を付ける
明細付与に移行するための画面

かなり分かりにくいですが、このaddから明細を付けることが可能です。

※これではかなり分かりづらいので、これを解決する方法もあとで説明します(^^)

見積書に付ける明細情報を入力する
書籍を購入する場合の入力画面

ステップ3のAddをクリックして品目と個数を入力し、Saveを押します。

見積書画面の確認
手直し前見積書画面

これで見積書への明細付与が出来ていますが・・

・・ちょっとアプリとしては使いにくいですよね?

合計金額が見積書にない…

画面右下にある小さなaddボタンSTEP.3から見積もり明細を追加する必要がある…

このあたりを改善するためにアプリに手を加えていきましょう!

合計金額カラムを作成する

見積書合計金額をつける方法の説明

まずはじめに、見積もり明細シートに品目×価格を計算するカラムを用意しましょう。

合計金額カラムの作成
virtual columnの追加

Add Virtual Columnをクリックします。

合計金額カラムの設定

App formulaに[価格]*[個数]を入力し、TypeをPriceにします。

合計金額カラムの詳細設定

合計金額カラムのDecimal digitsとCurrency symbolを変更します。

UXの見積もり詳細_InlineからColumn orderでViewの体裁を整えると

合計金額明細の画面

項目として品目、価格、個数、合計金額が表示され明細っぽくなりましたね(^^)

続いて、ref構文を使った合計金額の算出方法を説明します。

見積書シートに、明細の品目の合計金額を計算するカラムを作成します。

合計金額(合算)カラムの設定
Virtual Columnの作成

Add Virtual Columnをクリックします。

合計金額(合算)カラムの設定

App formulaにSUM([Related 見積もり詳細s][合計金額])と入力します。

ref構文のポイント
ref構文の説明

Related 〇〇sのカラムとrefを設定したテーブルのカラムと引っ付けることで、親テーブルのKey値と一致する情報をリストとして取得することが可能です。

このref構文がこの記事で伝えたいもう1つの構文です。ぜひマスターしてください!

SUM()関数を代表とする計算関数についてまとめています

参考記事

上記設定で合計金額(合算)カラムを設定し、見積書を閲覧すると・・

合計金額合算カラムの表示

見積書に紐ついた明細の合計金額が表示されるようになりました(^^)

[Related 〇〇s]の補足説明

いきなり出てきた[Related 〇〇s]について補足を説明します。

本記事の冒頭でも書きましたが、ref関係を結んだテーブル間では自由にカラム情報を取得することが可能です。

ref関係をテーブル間で持たせると親テーブル(ref設定したカラムがない方のテーブル)に[Related 〇〇s]というVirtual Columnが自動で生成されます。

[Related 〇〇s]と子テーブル(ref設定したカラムがある方のテーブル)のカラムと引っ付けることでその情報を遡ることが出来ます。

簡単な例になりますが・・

ref構文の確認
品目のref機能確認

1つ目の例として、App formulaに[Related 見積もり詳細s][品目]と入力します。

価格カラムのref機能確認

2つ目の例として、App formulaに[Related 見積もり詳細s][価格]と入力します。

ref機能の確認

見積書シートにはIDと見積書番号のカラムしかなかったはずですが、ref関係を他のテーブルと紐つけることで様々な情報を取得することが可能です。


見積書に明細を付けるアクションボタンを作成する

アクションボタンを分かりやすい位置に置く

もう少し使い勝手が良いアプリにするために、見積書の明細を付けるボタンを作成してみましょう(^^)

アプリに追加したい機能は、appsheetではアクションで実装できます。

見積もり明細ボタンの作り方
linktoformの入力

ポイントは以下の3点です。

  • For a record of this tableは見積書を指定
  • Do thisはApp:go to another view within this app
  • Targetはlinktoform(“見積もり詳細_form”,”見積もりID”,[ID])と入力

linktoform()関数については別の記事で詳しくまとめています

参考記事
アクションボタンの検証

明細を付けるボタンを押すと・・

明細の新規登録画面

先ほど見ていた見積書に明細を追記することが可能になりました!

おすすめの設定

見積書アプリを作るならやっておくといい設定などを最後にまとめましたので、参考にしてください。

子テーブルのIs a part of?にチェックを入れる

is a part ofの説明

この記事で紹介をしている見積書シート(親)と見積もり詳細シート(子)はref関係にあります。

Is a part of?の設定

見積書シートの見積もりIDカラムを見てみるとIs a part of?の設定があります。

is a part ofの説明

これにチェック印を入れておきましょう。

参照している親テーブルのデータが削除された時、それに紐ついているデータも合わせて削除されるようになります。

紛らわしいaddボタンを削除する

不要なアクションボタンを削除

分かりやすい明細を付けるボタンを作成したので、分かりにくいAddボタンを消します。

Addボタンの削除
Addボタンの削除

このAddボタンを消す方法です。

addボタン削除方法

Add(system generated)の設定を選択

見積もり詳細テーブルのAddアクションのProminenceをDo not displayに変更

addボタン設定の確認

写真右下にあったaddボタンが消えました(^^)

視認性の高い見積書に整える

見積書の体裁を整える

あくまでView画面なので特に気にしなくても良いような気もしますが・・何となく設定してみました。

column orderの設定

見積書_DetailのView設定を開き、Column orderを上図の順に設定にします。

見積書viewの確認

必要な情報を画面上部にまとめることでスッキリViewになりました(^^)


まとめ

以上、appsheetにおけるref機能についてまとめた記事でした。

繰り返しになりますが、データタイプrefを使うときのテーブルのデータ構成は以下の2パターンです。

入力を促す選択肢をまとめたマスターテーブルを用意する(参照データを定期的に更新することが可能)

親テーブルに紐付くデータとして使用(親テーブルのKey値に紐付く情報として記録)

またデータタイプrefを使う場合、覚えておくべきref構文は以下の2つです。

子テーブルで[カラム名].[カラム名]

親テーブルで[カラム名][カラム名]

まずはこの基礎をしっかり覚えておきましょう(^^)

記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。

わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!

勉強お疲れさまでした(^^)

データタイプrefについてまとめた記事です

参考記事

コメントを残す

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

CAPTCHA