AppSheetを使っていると、Refタイプを指定したカラムで選択する値に、KEYとなっているカラムの値ではなく、KEY以外のカラムの値を指定したいことがあります。
また、Refを設定したカラムでキーカラムの値を一覧として表示したいのに、意図せずキーカラム以外のカラムの値が表示されてしまうことがあります。
ここでは、そういったRefとKeyカラム関連の設定や対処法についてまとめています。
SELECT(カテゴリー一覧[カテゴリー], [大カテゴリー]=[_THISROW].[大カテゴリー])
Refタイプ(型)を設定したカラムでKEYカラム以外の値を選択肢として表示する方法
実はこれとても簡単です。
引用先のテーブルで型にRefを設定し、引用元のカラムで表示させたいカラムのLabelにチェックを入れるだけです。
実例:Key以外のカラムの値を一覧として表示する方法
例えば、「★取引履歴」というテーブルの「収入カテゴリー」というカラムのTYPEを「Ref」にして、「収入カテゴリー一覧」というテーブルと関連付けをしたとします。
デフォルトのスキーマとデータ状況
★取引履歴テーブルのカラム設定
収入カテゴリー一覧テーブルのカラム設定
「収入カテゴリー一覧」テーブルのKEYは「カテゴリー」というカラムです。LABLEのチェックもここに入っています。
ビューの表示
ビューで「カテゴリー」を選択すると、もちろんKEYとなっているカラムの値が表示されます。
LABELを変更する
現在はKEYとなっている「カテゴリー」の値を一覧として表示していますが、仮に「No」カラムを選択肢として表示させたい場合は、LABEL?のチェックを「No」カラムに付け替えます。
すると、ビューの表示がLABEL?で指定したカラムの値に切り替わります。
とても簡単ですね。
複数のカラムの値を選択しとして表示する
なお、LABEL?のチェックを複数のカラムにつけることで、指定したカラムの情報を選択肢として表示することができます。
例えば、LABEL?のチェックを「No」「登録日」「カテゴリー」につけたとします。
するとビューの選択肢も指定したカラムの値に置き換わります。
Refでキー以外の値が表示されるときの原因と対処法
KEYに設定しているカラムではないカラムの値が選択肢として表示されて困惑する人もいるかと思います。「KEYは正しく設定してあるし、SAVEもしたのになぜだろう?」という状態です。
原因
この原因はRef先のテーブルの「LABEL?」の値がキーカラム以外についていることです。
例えば、KEYは「カテゴリー」カラムなのに、LABEL?が「No」についているとします。
するとRefを指定したカラムの選択肢はこのLRABEL?で指定したカラムの値となります。
対処法
対処法は簡単です。LABEL?のチェックをKEYと同じカラムにしてください。
こうすることで、Refを指定したカラムの選択肢もLRABEL?で指定したカラムの値つまり、KEYカラムの値となります。
以上です。