その他の変数概念
Power Apps のロジックの概念と変数の種類について理解したら、アプリに変数を統合するのに役立ついくつかの追加の概念を拡張できます。
変数は自己参照可能
この概念は、グローバル変数とコンテキスト変数の両方に適用されます。 場合によっては、それ自体を指す変数を作成する必要があります。 これは多くの場合、値をインクリメントするカウンター型変数を実行するか、文字列を追加する場合に行われます。 Power Apps では、これは簡単に実装できます。 カウンターを設定するには、ボタンの OnSelect プロパティに次の数式を配置します。
Set(varCounter, varCounter + 1)
ボタンの横に Label を配置し、 Text プロパティに varCounter を配置します。 ボタンを初めて選択すると、値は 1 になります。 ボタンを 2 回目に選択した場合、値は 2 になります。 リテラル変換を表示するには、次の表を使用します。
| ボタンを押す前の varCounter の値 | ボタンを押す | 計算式 | 価値観 | ボタンを押した後の varCounter の値 |
|---|---|---|---|---|
| 0 | 最初 | Set(varCounter, varCounter + 1) | Set(varCounter, 0 + 1) | 1 |
| 1 | Second | Set(varCounter, varCounter + 1) | Set(varCounter, 1 + 1) | 2 |
| 2 | 三番目 | Set(varCounter, varCounter + 1) | Set(varCounter, 2 + 1) | 3 |
アプリが最初に起動すると、varCounter の値は 0 になり、ボタンが選択されるたびに 1 ずつインクリメントされます。 既定のプロパティを設定しない場合、変数の既定値は変数の型によって異なります。
テキスト変数は "" です
数値変数は 0 です
ブール変数は false です
変数は 1 つのレコードを格納できます
この概念は、グローバル変数とコンテキスト変数に適用されます。 コレクションは、1 つ以上のレコードで構成されるテーブルであるため、少し異なります。つまり、コレクションのレコードの格納と取得は異なります。
前のユニットでは、グローバル変数またはコンテキスト変数に 1 つの値を格納する方法を学習しました。 変数にレコードを格納することもできます。 これを行うときは、ドット (.) 表記を使用して、さまざまなフィールドまたは列を参照できます。
この例では、 varUser という名前のグローバル変数にユーザー レコード全体を格納します。 これを行うには、次の関数を使用します。
Set(varUser, User())
これにより、ユーザー レコード全体が変数に格納されます。 ユーザー レコードには、Email、FullName、Image の 3 つの列があります。 ドット (.) 表記を使用して、個々の列の値を取得できます。 ユーザーのメール アドレスを表示するには、Label コントロールを画面に追加し、text プロパティを次の値に設定します。
varUser.Email
次の使用例は、アクション ベースのデータ ソースのレコードを格納します。 また、 LookUp 関数を使用して、Microsoft Dataverse などの表形式のデータ ソースからレコードを取得して変数に格納することもできます。
変数が自動更新されない
変数を初めて使用するユーザーにとって一般的な混乱点は、変数が自動的に更新されないということです。 たとえば、変数を使用して、アプリの OnStart を使用して顧客の請求書の数を格納できます。 次に、アプリで、ユーザーが新しい請求書を作成します。 変数は、変更されたシステム内の請求書の数を区別しません。 変数は、次の場合にのみ更新されます。
ユーザーがアプリを閉じてから、もう一度開きます。 これにより、OnStart は請求書の数を計算する操作を実行します。
ユーザーが請求書を作成した後に変数を更新する機能を実装します。
変数を使用してデータを追跡するのが初めてである場合は、この一般的な混乱点に注意してください。