見出し画像

[PowerApps]グローバル変数_全スクリーンでシェアする変数

前回の記事では、SharePointリストのアプリ化について投稿しました。

今回は、アプリ内の機能カスタマイズ第2段として「グローバル変数」について記載します。

1.PowerAppsで扱う変数3つ

画像1

①グローバル変数:
アプリ全体に対して設定される変数。ある画面から別の画面に移動しても、変数内の値は保持されます。「Set関数」で定義します。

②コンテキスト変数:
特定の画面に対して設定される変数。基本的には*別の画面に移動した際、前の画面で使用していた変数の値を持ち込むことは出来ません。「UpdateContext関数」で定義します。
*Navigate関数の3つ目の引数内で、画面移動先でのコンテキスト変数を定義することが出来ます。

③コレクション:
アプリ全体に対して設定される変数。グローバル変数と異なり、テーブル形式でデータを格納することが可能です(1つの変数内に複数のデータをセット出来る)。「ClearCollect関数、Collect関数」を用いて定義、追加します。

今回はこのうち、「1.グローバル変数」を扱います。

2.実装したい機能 - タイトルは新規登録のときだけ編集

画像2

今回は、上図のような機能の搭載を目指します。

3.Set関数の編集

画像3

メイン画面"BrowseScreen1"を開きます。
+アイコン"IconNewItem1"の"Onselect"プロパティを開きます。
関数を入力する欄の先頭に、"Set"関数を追加します。入力内容は上図の黄色ハイライト通りです(↓コピペ用)。

Set(TitleEdit,"有効")

ここで、
TitleEdit:第1引数、変数の名前
"有効":第2引数、変数内に格納する文字
を意味します。つまり、TitleEditという変数の中に"有効"という文字を格納(定義)したとこになります。

また、ここで第1引数、第2引数といっているのは、変数の括弧内にカンマ " , "で区切られた各要素のことを意味します。
Set(第1引数 , 第2引数)

画像4

同様にして、詳細画面"DetailScreen1"を開きます。
編集アイコン(鉛筆マーク)"IconEdit1"の"Onselect"プロパティを開きます。
メイン画面と同様、Set関数を編集します(↓コピペ用)。

Set(TitleEdit,"無効")

これで、メイン or 詳細画面のどちらから移動してきたかに応じて、
グローバル変数"TitleEdit"に、"有効" or "無効"のそれぞれ異なる文字を格納する事ができました。

4.変数に対応するアクションを編集

変数によってアクションを変化させる項目を編集します。
今回は、編集画面にタイトルを表示するか否かを、変数の値に応じて変化させます。

画像5

上図のように、編集画面"EditScreen1"のタイトル入力用フィールド"Title_DataCard2"を選択します。
プロパティの中から"Visible"を選択し、以下のように記述します。

If(TitleEdit = "有効", true, false)

変数"Title Edit"に格納された文字が"有効"の場合は"true"を返し、そうでない場合(今回は"無効"を格納しているケース)は"false"を返します。

Visibleプロパティは、
・True ⇒ 該当のアイテムを表示
・False ⇒ 該当のアイテムを非表示
にする機能を持っています。

また、If文の各引数はそれぞれ以下を意味します(Excelと同じ)。
⇒ If(条件, 条件がTrueの場合の値, 条件がFalseの場合の値)

ということで、対応するアクションの編集もこれで完了です。

ちなみに、図中では判りやすいようにIf文の引数毎に一部改行していますが、しなくても問題無いです。
また第3引数にIf文がFalseの場合の出力"false"を記載していますが、これは無くても機能します。
著者は脳内のメモリがめっちゃ少ないので、後でメンテナンスに戻ってきたときになるべく思い出しやすいように、記載した方が判りやすいものはなるべく書き残して置くようにしています。

5.アプリのテスト結果

画像6

上図の通り、無事にアクセス経路に応じて表示する項目を変更させる事が出来ました。

ということで、PowerApps備忘録第2段でした。
最後までお付き合いいただき、ありがとうございました!

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