Power Apps のキャンバス アプリの変数には、グローバル変数とコンテキスト変数、コレクションの3種類があります。今回は、グローバル変数(Set)とコンテキスト変数(UpdateContext,Navigate)に着目してお話していきたいと思います!
1.共通事項
グローバル変数とコンテキスト変数の値の扱い方は、ほとんど共通しています。
- アプリを閉じると、変数の値はクリアされる
- 値には、テキスト列、数値、テーブル、レコードなど任意のデータ型を設定できる
- 同じ変数に異なるデータ型の値を指定することはできない
(ある OnSelect プロパティでは、Set(_x,1)で数値型を指定して、別の OnSelect プロパティでは、Set(_x,”1″)でテキスト型を指定しようとするとエラーが発生します)
2.それぞれの変数の特徴
グローバル変数とコンテキスト変数の一番の違いは、スコープの範囲です。
変数の種類 | 説明 | 関数 |
---|---|---|
グローバル変数 | アプリ内のどこからでも参照可能な変数です。 | Set |
コンテキスト変数 | 特定のスクリーン内のみ参照可能な変数です。 | UpdateContext Navigate |
私は基本的に、Set 関数でグローバル変数を利用することが多いです。
例外として、画面遷移時に他のスクリーンに値を渡したいときは Navigate 関数を、別のスクリーンでも同じ変数名を利用したいときに UpdateContext 関数を利用したりしています。
個人的には、グローバル関数は『標準語』、コンテキスト変数は『方言』というイメージをしています。
(^・ェ・^).oO(今だけ、アプリ=日本、各スクリーン=都道府県とかの地域だと思ってください)
長野県スクリーンで、「_モチベーション」と「_ズク」という変数を設定しています。
Set 関数で設定した「_モチベーション」は、グローバル関数(≒標準語)のため、長野県でも新潟県でも「やる気」と表示されます。
UpdateContext 関数で設定した「_ズク」は、コンテキスト関数(≒方言)のため、長野県では表示されますが、新潟県では「ズク」が何か分からずエラーとなっています。
公開情報:キャンバス アプリの変数を理解する
3.各関数の使い方
(1)Set 関数
Set(変数の名前,変数の値)
例 | 結果 |
---|---|
Set(_X,1) | 「_X」という変数の値は、1となります。 |
Set(_X,_X+2) | 前の「_X」の値1に2を加えて、3となります。 |
Set(_モチベーション,”やる気”) | 「_モチベーション」という変数の値は、「やる気」となります。 |
Set(_motivation,{単語:モチベーション,意味:やる気,カテゴリ:標準語}) | 「_motivation」という変数の値には、 {単語:モチベーション,意味:やる気,カテゴリ:標準語} というレコード値になります。 このレコード全体を参照するには、「_motivation」を指定します。カテゴリ列の値のみを参照するには、「_motivation.カテゴリ」を指定します。 |
Set(_Title,Gallery1.ThisItem.Title) | 「_Title」という変数の値には、Gallery1(ギャラリー)で選択しているレコードのTitle列の値になります。 |
公開情報:Power Apps の Set 関数
(2)UpdateContext 関数
UpdateContext({変数の名前:変数の値})
UpdateContext({変数1の名前:変数1の値,変数2の名前:変数2の値,変数3の名前:変数3の値,、、、})
※Set 関数とは異なり、一度に複数の変数を作成・更新することができます。
例 | 結果 |
---|---|
UpdateContext({_Y:1}) | 「_Y」という変数の値は、1になります。 |
UpdateContext({_X:3,_Y:5}) | 「_X」の値は3、「_Y」の値は5になります。 |
UpdateContext({_Count:_Count+1}) | 式が実行されるたびに、「_Count」の値は1ずつ加算されます。 |
UpdateContext({_User{Name:User().Name,mail:User().mail}}) | 「_User」の値は、Name列に現在のログインユーザーの表示名、maile列にログインユーザーのメールアドレスといったレコードになります。 |
公開情報:Power Apps の UpdateContext 関数
(3)Navigate 関数
Navigate(遷移するスクリーン,{変数の名前:変数の値})
Navigate(遷移するスクリーン,遷移時の見た目,{変数の名前:変数の値})
Navigate 関数は、基本的に画面を遷移するための関数です。
画面を遷移するときに、現在の画面上の値を、遷移後の画面に渡すことができます。
例 | 結果 |
---|---|
Navigate(NewScreen,{ID:4}) | NewScreen に遷移します。NewScreen のコンテキスト変数の「ID」の値は4になります。 |
Navigate(NewScreen,ScreenTransition.Fade,{ID:4,Animal:Tiger}) | 画面がフェードアウトしながら、NewScreenに遷移します。NewScreen のコンテキスト変数の「ID」の値は4、「Animal」の値は Tiger になります。 |
公開情報:Power Apps の Back および Navigate 関数
私は、慣れるまでは Set 関数のみを利用していました。Set 関数だけでも覚えておくと、値の受け渡しがしやすくなるのでお勧めです😊
今回、コレクションについては触れませんでしたが、コレクションもとても便利です!難しそう、、、と勝手に思っていましたが、意外と簡単でした!一度、触ってみることって大切ですね(₌・ェ・₌)
コレクションについても後日、アップしようと思っています!