概要
この記事では Power Apps でアプリを作成する際に使用する変数の種類と値の格納方法について説明します。
アプリ内で使用される変数は大きく分けて3つあります。
- コンテキスト変数(ローカル変数)
- グローバル変数
- コレクション
それでは上記の変数およびコレクションについて順に説明をしていきます!
1. コンテキスト変数 (ローカル変数)
コンテキスト変数は画面内でのみ使用できる変数です。
特定の画面内で設定したコンテキスト変数は他の画面では適用されません。
UpdateContext({ "変数名": "値" })
UpdateContext({ loc_Visible: true })
使用例
- ボタンを押した時の
OnSelect
で実行 - 画面遷移時の
OnVisible
内で設定
画面が遷移した場合、遷移先でコンテキストの値を使用しても反映されません。
キャンバスアプリにボタンコントロールとテキストコントロールを設置してみます。
2つのボタンには以下の画像のように OnSelect
にコンテキスト変数を宣言させています。
テキストコントロールの Text
には宣言して変数名を入力します。
今回の場合は loc_Context
を設定しています。
では、はい のボタンをクリックします。
loc_Context の値に "はい" が設定され、設置したテキストコントロールの値が変更されたのが分かります。
次にいいえのボタンをクリックします。
loc_Context の値が "いいえ" に変更され、テキストコントロールの出力が変更されました。
コンテキスト変数はこのように同一画面内でのみ何かしらの値やデータを保持させたい時に便利な変数です。
2. グローバル変数
グローバル変数は、アプリ全体で共有できる変数です。
どの画面からでもアクセス可能で、画面が遷移しても値を保持し続けます。
Set("変数名","値")
UpdateContext( gbl_Visible , true )
使用例
- ボタンを押した時の
OnSelect
で実行 - アプリ起動時の
OnStart
内でユーザーのログイン情報などを保持させる
アプリ全体で共有できるのは便利ではありますが、あまりにも多用してしまうと管理が複雑になる可能性があります。
なるべく必要最小限で抑えましょう。
3. コレクション
コレクションはリスト形式でデータを保持します。
データテーブルの格納やリストアイテムを使う際に役立ちます。
ClearCollect("コレクション名",
{ ID: 1, Name: "太郎", Age: 25 },
{ ID: 2, Name: "花子", Age: 20 }
)
使用例
- ボタンを押した時の
OnSelect
で実行 - アプリ起動時の
OnStart
内でテーブルに格納
キャンバスアプリにボタンコントロールとギャラリーを設置してみます。
ボタンの OnSelect
とギャラリーの Items
をそれぞれ以下のように設定します。
現状、コレクションの中身は空っぽのためギャラリー内にはアイテムは表示されていません。
では コレクション作成
ボタンをクリックしてみましょう。
【コレクション内は空っぽの状態】
【コレクション内に col_Employeeテーブルが作成】
col_Employee
テーブルが作成され、ギャラリーにアイテムが表示されるようになりました。
このようにコレクションは任意のテーブルをアプリ内に作成・保持させることが可能です。
また、自身でテーブルを作成しなくても Filter
関数を使用してテーブルデータの一部取込などを行うことも可能です。
コレクションのデータはアプリを終了するとリセットされます。
保存されたデータ量が多いとパフォーマンスに影響を及ぼす可能性があります。
まとめ
今回ご紹介した変数はごく一例の設定方法です。
そのほかにも、様々なパターンに適した用途があるものもあります。
まずは理解しやすい初級編の変数やコレクションを覚えて
効率的なアプリ作成の第一歩を進めましょう!!!!