見出し画像

【AppSheet】脱初心者!ボタンを条件で出し分けるにはCONTEXT()関数が使える件

AppSheetを作りこんでいくと、
「この画面だけ○○したいんだよね!」
なーんてシーンが出てくることがあると思います。

今回は、関数を使ったボタンの出し分けを例に挙げながら、
UIの出し分けで活用できる、
「CONTEXT()関数」について解説していこうと思います。

今回の公式ヘルプはこちらです


そもそもCONTEXTってなんだ?

CONTEXTって聞いたことはあるけど、
意味がピンと来なかったのでそこから調べてみました。

--- CONTEXTとは ---
ITの分野では、利用者の意図や状況、環境などの総体を表したり、同じ処理や記述でも状況に応じて動作などが異なる場合に、その選択基準となる判断材料や条件などを指す場合が多い。

it用語辞典 e-Words

つまり、利用者の意図や状況、環境によって処理を出し分けてくれる関数と言うことですね。
まさに今回やろうとしていること!
ある意味、言葉通りの関数です。

CONTEXTを使うとどうなる?

条件によって出し分けてくれるとのことなので、if文と似てるっぽい。
ですが、引数は状態に関わるものになります。

例えば、"VIEW"や"VIEWTYPE"を渡すと画面状態で制御できたり、"Host"を渡すとデバイス状況で制御できるようです。

今回はViewの名前での制御ですが、
他にもPCとスマホのUIを分けたり応用ができそうです。

具体的なCONTEXTの利用用途、
画面でボタンを出し分ける

アクションを作成したときのデフォルトの動きを見てみる

ここからは、具体的な使い方を見ていきましょう。
(画面の細かなところは省くので、赤枠付近だけ注目すればOK)

基本的に、アクションは特定のテーブルに紐づくので、
そのテーブルを使っている画面全部に影響があります。


例えば、
T_Shippingというテーブルにアクションを作ると、
T_Shippingを使った画面全部に影響があります。
(どこに表示されるかはアクションの種類によっても違う模様)

T_Shippingというテーブルに、サンプルボタンという
アクションを作ってみましょう
出庫一覧画面は、T_Shippingのデータを表示していますので、
先程作ったサンプルボタンが表示されます。
T_Shippingテーブルに自動作成されるT_Shipping_Detail画面でも、
先程作ったサンプルボタンが表示されます。

CONTEXT関数を使ってみる

でも、場合によっては「この画面だけにボタンを表示させたいんだ!」なんてこともありますよね。
そんな時に、CONTEXT関数の出番です!

例えば、出庫一覧画面にだけボタンを出してみましょう。

作成したアクション>Behavior>Only if this condition is true に、
CONTEXT関数を使っていきます。
「CONTEXT("View")="出庫一覧"」と入れてみます

ちなみに、
CONTEXT関数の利用方法はこんな感じ。
CONTEXT(option)

今回は画面の名前で出し分けがしたいので、
optionには、Viewを設定していきます。

そうするとこうなる↓
CONTEXT("View")

更に、Viewの名前が出庫一覧の時なので
CONTEXT("View")="出庫一覧"
とするわけです。

ちなみに、”SAVE”をしないと画面反映されないのでお忘れなく!

CONTEXT関数で出し分けたボタンを確認する

さっそく2つの画面を見比べていきます。

この画面は先程追加したCONTEXT関数の式と合致するので、
アクションが表示されます
この画面は先程追加したCONTEXT関数の式と合致しないので、
アクションが非表示になります

見てください!
ボタンを特定の画面だけに表示をすることができました。

ちょっとしたことですが、
・この画面だけで別の画面に遷移させたい
・この画面だけでCSVをダウンロードさせたい
など、
作りこんでいくと活躍する場面がありそうです。

いかがだったでしょうか?
こういった細かな制御ができてくると、痒い所に手が届く作りにできますよね。ぜひ参考にしてもらえると嬉しいです。


最近は、AppSheetの勉強を頑張っています。
こちらに記事をまとめているので、ぜひ他の記事も参考にしてもらえると嬉しいです。同志募集中!


この記事が気に入ったらサポートをしてみませんか?