その他の変数概念

完了

これで Power Apps ロジックの概念と変数の型を理解できました。それに加え、さらにいくつかの概念を理解すると、アプリに変数を統合する上で役立ちます。

変数は自己参照できる

この概念は、グローバル変数とコンテキスト変数の両方に適用されます。 場合によっては、変数にそれ自体を参照させる必要がある場合があります。 これは、値をインクリメントするカウンターの変数や既存の値に文字列を追加する場合によく行われます。 Power Apps では、これを簡単に実装できます。 ボタンのカウンターを設定するには、OnSelect プロパティに次の式を追加します。

Set(varCounter, varCounter + 1)

ボタンの隣に ラベル を配置し、Text プロパティに varCounter を配置します。 ボタンを 1 回選択すると、値は 1 になります。 ボタンをもう 1 回選択すると、値は 2 になります。 実際の値については、次の表を参照してください。

varCounter 機能のアニメーション。

ボタンを選択する前の varCounter の値 ボタンの選択 数式 ボタンを選択した後の varCounter の値
0 Set(varCounter, varCounter + 1) Set(varCounter, 0 + 1) 1
1 2 番目 Set(varCounter, varCounter + 1) Set(varCounter, 1 + 1) 2
2 3 番目 Set(varCounter, varCounter + 1) Set(varCounter, 2 + 1) 3

アプリの初回起動時には、varCounter の値は 0 です。その後、ボタンを選択するごとに値が 1 ずつインクリメントされます。 既定のプロパティを設定しない場合、変数の既定値は変数の型によって異なることに注意してください。

  • テキストの変数の場合は ""

  • 数値の変数の場合は 0

  • ブール値の変数の場合は false

1 つの変数に 1 つのレコードを格納できる

この概念は、グローバル変数とコンテキスト変数に適用されます。 コレクションは 1 つ以上のレコードで構成されるテーブルであるため、少し異なります (コレクションでは、レコードの格納および取得の処理が異なります)。

前のユニットでは、グローバル変数またはコンテキスト変数に 1 つの値を格納する方法について説明しました。 変数には、1 つのレコードを格納することもできます。 その場合、ドット (.) 表記を使用してさまざまなフィールドや列を参照できます。

この例では、varUser という名前のグローバル変数にユーザー レコード全体を格納します。 これを行うには、次の関数を使用します。

Set(varUser, User())

これにより、変数にユーザー レコード全体が格納されます。 このユーザー レコードには、Email、FullName、Image という 3 つの列があります。 ドット (.) 表記を使用することで、それぞれの列の値を取得できます。 ユーザーのメール アドレスを表示するには、画面にラベル コントロールを追加し、text プロパティを次のように設定します。

varUser.Email

この例では、アクションに基づくデータ ソースからレコードが格納されます。 Microsoft Dataverse など、表形式のデータ ソースからレコードを取得し、変数に格納する方法としてLookUp 関数も利用できます。

変数は自動では更新されない

変数を使用する場合によく混乱するのは、変数が自動では更新されないことです。 たとえば、変数を使用して、アプリの OnStart で顧客の請求書の数を格納することができます。 その後に、ユーザーがアプリで新しい請求書を作成したとします。 この変数では、システムの請求書の数が変わったことを識別できません。 この変数が更新されるのは、次の場合だけです。

  • ユーザーがアプリを閉じてもう一度開いた場合。 これにより、OnStart で請求書の数の計算が行われます。

  • ユーザーが請求書を作成したら変数を更新する機能を実装した場合。

変数を使用してデータを追跡する場合は、上記の点に注意してください。