制御
If
Power Appsでのif文の書き方は以下の通りです。
If(条件式1, 条件式1がtrueのときの値または処理 [, 条件式2, 条件式2がtrueのときの値または処理, ... [ , 既定の値または処理] ] )
Power AppsではIfの結果として、「値を返す」または「処理を実行」することができます。
// Slider1の値が80より大きい際に赤を、80以下の際に黒を返す(色を設定する)
If(Slider1.Value > 80, Color.Red, Color.Black)
// Checkbox1がチェックされているときはScreen2へ、されていないときはScreen3へ遷移する
If(Checkbox1.Value = true, Navigate(Screen2), Navigate(Screen3))
Switch
Power AppsでのSwitchの書き方は以下の通りです。
Switch(式, 値A, 式=値Aの際の値または処理 [, 値B, 式=値Bの際の値または処理, ... [, 既定の値または処理 ] ] )
Ifと同様に、Switchの結果として「値を返す」または「処理を実行」することができます。
// ラジオボタンの選択によって、表示する文字列を変更
Switch(Radio1.Selected.Value,
1, "1を選択",
2, "2を選択",
3, "3を選択",
"未選択"
)
// ドロップダウンの選択によって遷移する画面を変更。1,2以外の値が選択された場合はエラーを表示
Switch(Dropdown1.Selected.Value,
1, Navigate(Screen2),
2, Navigate(Screen3),
Notify("不正な値が選択されました。", NotificationType.Error)
)
データ操作
データ操作を行う関数の説明では、サンプルデータとして以下のコレクション「IceCream」を使用します。
First
First関数を使用すると、データソースやテーブル、コレクションの最初のレコードを取得できます。
First(テーブル)
IceQreamコレクションの最初のレコードのプロパティ「Flavor」を取得する式は以下の通りです。
First(IceCream).Flavor
Index
Index関数を使用すると、対象の指定インデックスのレコードを取得できます。
Index(テーブル, 取得するレコードのインデックス)
IceCreamコレクションの最初のレコードのプロパティ「Flavor」を取得する式は以下の通りです。
※Power AppsのIndexは1始まり
Index(IceCream, 1).Flavor
LookUp
LookUp関数を使用すると、条件を満たす最初のレコードを取得できます。
※条件を満たすレコードが複数ある場合も、レコードは1つのみ戻ります
LookUp(テーブル, 条件)
Flavorプロパティが「Vanilla」のレコードの、「Quantity」を取得する式は以下の通りです。
LookUp(IceCream, Flavor="Vanilla").Quantity
LookUpは第3引数に式を渡すことで、取得するレコードを単一の値に変更することも可能です。
以下の式でも、Flavorプロパティが「Vanilla」のレコードの、「Quantity」を取得可能です。
LookUp(IceCream, Flavor="Vanilla", Quantity)
// LookUp(IceCream, Flavor="Vanilla").Quantityと同じ結果
Filter
Filter関数を使用すると、対象をフィルターした結果をテーブル型の値として取得できます。
Filter(テーブル, フィルター式1 [, フィルター式2, ... ] )
Quantityが200以上のレコードを表示する式は以下の通りです。
ForAll
ForAll関数を使用すると、第一引数で渡したテーブルのすべてのレコードに対し、引数で指定した数式を実行した結果のテーブル型の値を取得することができます。
ForAll(Table, Formula)
ForAll関数を使用し、Quantityをすべて税込みにしたテーブルを取得する式は以下の通りです。
※ForAll内で対象のレコードにアクセスする際は「ThisRecord」を使用します。
ForAll(IceCream,
{Flavor:ThisRecord.Flavor, Quantity:ThisRecord.Quantity * 1.1}
)
ForAll関数を使用することでforループを実現することも可能です。
詳しくはこちらのサイトを参照してください。
UI操作
Notify
Notify関数を使用すると画面にメッセージを表示できます。
Notify( メッセージ[, NotificationType [ , Timeout ] ] )
// NotificationType : メッセージの種類
// Timeout : メッセージの表示時間
NotificationTypeは以下の定義値を指定します。
NotificationType 引数 | 内容 |
NotificationType.Error | メッセージをエラーとして表示します。 |
NotificationType.Information (既定) | メッセージを情報提供として表示します。 |
NotificationType.Success | メッセージを成功として表示します。 |
NotificationType.Warning | メッセージを警告として表示します。 |
Notify関数の使用例です。
Notify("エラーメッセージ", NotificationType.Error);
Select関数
画面上のコントロールのOnSelect処理を実行します。
※OnSelectプロパティを持つコントロールのみ指定できます。
Select(コントロール名);
画面のOnVisible処理でボタンのOnSelect処理を呼ぶ例です。
Navigate関数/Back関数
Navigate関数は画面を移動する際に使用する関数です。
画面を移動する際、移動先の画面に引数を渡すことも可能です。
// 画面を移動する
Navigate( 画面名 )
// 画面遷移時のアニメーション、移動先の画面変数を指定して、画面を移動する
// ※移動先の画面変数を指定する場合、画面遷移時のアニメーションの指定は必須です。
Navigate( 画面名 [, 画面遷移時のアニメーション定数 [, 引数 ] ] )
※画面遷移時のアニメーション定数は以下のサイトを確認してください。
Navigate関数で移動した画面でBack関数を使用すると、移動前の画面に戻ることができます。
// 前の画面へ移動する
// ※引数などの設定は不可
Back()
次の画像は画面「Screen2」へ、引数「argText(中身は文字列「XXX」)」を渡し、移動するサンプルです。
ボタンを押下し画面を移動すると、移動先の画面(Screen2)で引数argTextを使用することが可能です。
その他関数
User関数
現在アプリを使用しているユーザーの情報を取得する関数です。
// アプリ使用ユーザーのメール(UPN)を取得
User().Email
// アプリ使用ユーザーのフルネームを取得
User().FullName
//アプリ使用ユーザーのサムネイルを取得
User().Image
Blank関数
Blank(Power Appsでのnull相当値)を取得する関数です。
以下の例では「列1」がBlankのテーブルを取得します。
Filter(テーブル, 列1 = Blank())
その他の関数や詳しいリファレンスはこちら