Power Fx を使用してコマンドにロジックを追加する
モデル駆動型アプリでは、カスタム ボタンを追加できるフォームとビューの上部にあるコマンド バーがサポートされます。 Power Fx を使用すると、ボタンを選択したときの動作、ボタンが表示されるかどうか、選択したレコードとの対話方法を制御できます。
コマンド実行とは?
コマンドを使用すると、作成者はコマンド デザイナーを使用して、モデル駆動型アプリのコマンド バーにカスタム ボタンを追加できます。 JavaScript を記述するのではなく、キャンバス アプリで使用されるのと同じ数式言語である Power Fx 式を記述して、ボタンの動作と可視性を定義します。
Note
キャンバス アプリで動作する Power Fx 関数の多くは、コマンド実行でもサポートされています。
Set()、Collect()、UpdateContext()など、一部の関数はサポートされていません。また、キャンバス固有の状態管理に依存する関数もあります。
OnSelect
OnSelect プロパティは、ユーザーがボタンを選択したときに実行される内容を定義します。 ここでサポートされている任意の Power Fx 関数を使用できます。
たとえば、現在選択されている取引先レコードの名前を更新するには、次のようにします。
Patch(Accounts, Self.Selected.Item, {'Account Name': "Contoso"})
別の画面またはビューに移動するには:
Navigate(Accounts)
アクションを実行する前に確認ダイアログを表示するには:
If(
Confirm("Are you sure?", { ConfirmButton: "Yes", CancelButton: "No" }),
Patch(Accounts, Self.Selected.Item, {Status: "Closed"})
)
表示
Visible プロパティは、コマンド バーにボタンを表示するかどうかを制御します。
trueまたはfalseを返す Power Fx 式に設定します。
たとえば、グリッドで 1 つ以上のレコードが選択されている場合にのみボタンを表示するには、次のようにします。
CountRows(Self.Selected.AllItems) > 0
特定のフィールド値を持つレコードに対してのみボタンを表示するには:
Self.Selected.Item.'Account Rating' > 20
選択済みプロパティ
コマンドの Power Fx 式内では、 Self.Selected オブジェクトを使用すると、アプリで現在選択されているレコードにアクセスできます。
| Property | 返品 | Description |
|---|---|---|
Self.Selected.Item |
単一レコード | 現在選択されているレコード。 何も選択されない場合、または複数のレコードが選択されている場合は空白。 |
Self.Selected.AllItems |
レコード一覧 | 現在選択されているすべてのレコード。 何も選択していない場合は空。 |
Self.Selected.State |
Enum | フォームが編集 (0)、新規 (1)、またはビュー (2) のどちらの状態にあるか。 |
ユーザーに通知する
コマンドの実行後にアプリ ユーザーにバナー メッセージを表示するには、 Notify 関数を使用します。
Notify("Record updated successfully.")
次に、実践的な演習で完全なモデル駆動型アプリを構築することで、スキルを実践します。