モデル駆動型アプリのカスタム ページで Power Fx を使用する

この記事では、一般的な Microsoft Power Fx 関数がスタンドアロンのキャンバス アプリとカスタム ページでどのように動作が異なるかを説明します。 これは、カスタム ページがモデル駆動型アプリ内のコンポーネントであるためです。 他の Microsoft Power Fx 数式は引き続き同じように動作します。

重要

カスタム ページは製品が大幅に変更された新機能であり、現在、カスタム ページの既知の問題に概説されているいくつかの既知の制限があります。

カスタム ページに通知を追加する

通知機能を呼び出すことにより、カスタム ページでユーザーに通知を表示できます。 通知メッセージが表示されると、既定ページの上部にドッキングされ、無効になるまで表示されたままになります。 タイムアウト間隔が指定されている場合、通知メッセージはタイムアウト間隔の後に表示されなくなります。 10 のタイムアウト間隔は使用しないことをお勧めします。これは、タイムアウト間隔とは見なされなくなったためです。 詳細情報: 通知機能

Notify( "Custom page notification message" )

カスタム ページ通知情報メッセージ バー

Notify( "Custom page notify warning message", NotificationType.Warning )

カスタム ページ通知警告メッセージ バー

このセクションでは、Power Fx を使用して、モデル駆動型アプリ フォームからカスタム ページに移動する例、カスタム ページからその他のカスタム ページまたはモデル駆動型アプリ フォームに移動する例を示します。

移動機能により、ユーザーはモデル駆動型アプリ フォームまたはカスタム ページのいずれかから移動できます。 この関数は、カスタム ページがモデル駆動型アプリ内で実行されている場合にのみ適用されます。 キャンバス デザイナーでカスタム ページを作成またはプレビューしている間は、この関数は無効です。

あるカスタム ページから別のカスタム ページに移動するには、カスタム ページの表示名を最初のパラメータとして渡します。

Navigate( CustomPage2  )

テーブルの規定ビューに移動するには、最初のパラメータとしてテーブル名を渡します。

Navigate( Accounts )

テーブルの特定のシステム ビューに移動するには、ビューの GUID を渡します。

Navigate( 'Accounts (Views)'.'My Active Accounts' )

テーブルの既定フォームに移動するには、レコードを最初のパラメーターとして渡します。

Navigate( Gallery1.Selected )

Dataverse レコードを特定のフォームに渡すには、2 番目のパラメーターのページ属性でフォーム名を渡します。

Navigate( 
  AccountGallery.Selected, 
  { Page: 'Accounts (Forms)'.Account  } )

Dataverse レコードを特定のカスタム ページに渡すには、2 番目のパラメーターのページ属性でカスタム ページ名を渡します。

Navigate( 
  AccountGallery.Selected, 
  { Page: 'Account Record Page'  } )

ターゲット カスタム ページでは、Param 関数を使用してレコードが取得され、etn および id の値が取得されます。

以下は、レコードを EditForm コントロールに読み込む例です。

AccountEditForm.DataSource = Accounts
AccountEditForm.Item = 
  LookUp( Accounts, accountid = GUID( Param("id") ) )

作成モードでテーブルの既定フォームに移動するには、Defaults 関数から作成された Dataverse レコードを渡します。 これにより、レコードを使用する既定フォームが新しいレコードとして開きます。 Defaults 関数は、テーブル名を使用してレコードを作成します。

Navigate( Defaults( Accounts ) )

一部のフィールドが既定になっている新しいレコードに移動するには、Patch 関数を使用して、テーブルの既定レコードにフィールドを設定します。

Navigate(
    Patch(
        Defaults(Accounts), { 'Account Name': "My company", Phone: "555-3423" } ) 
  )

最後のページに戻るか、ダイアログを閉じるには、カスタム ページで Back 関数が呼び出されます。 Back 関数により現在のページを閉じ、モデル駆動型アプリの最後のモデル駆動型アプリまたはカスタム ページに戻ります。 カスタム ページに複数の画面がある場合は、カスタム ページに複数の画面がある場合に戻るの記事を参照してください。

Back( )

カスタム ページの既定の構成では、画面が 1 つあります。 この場合、モデル駆動型アプリでカスタム ページがページ スタックの最後にある場合を除き、Back 関数の呼び出しはカスタム ページを閉じます。 最後のページは開いたままになります。

アプリ作成者は、カスタム ページで複数の画面を有効にすることができます。 これらは、スタックできるカスタム ページ内のページ全体のコントロールのように見なされる必要があります。 カスタム ページを開く際には、使用する画面を指定する手段がありません。 カスタム ページに複数の画面が含まれている場合、作成者は画面のスタックを管理する責任があります。 画面に Navigate 関数を呼び出すと、カスタム ページがある画面スタックに追加されます。 各 Back 関数の呼び出しにより、画面スタックから画面が削除されます。 画面スタックに 1 つの画面しかない場合、カスタム ページは閉じられます。

複数画面を有効化する

既定では、カスタム ページは単一の画面を使用して、アプリをページごとの画面に分割するように促します。 これは、設定 > 表示 > 複数画面を有効化する を有効にすることで切り替えることができます。

カスタム ポリシーで複数画面を有効化する

Confirm 関数

この Confirm 関数は、現在の画面の上にダイアログ ボックスを表示します。 確認ボタンとキャンセル ボタンの 2 つのボタンが用意されており、デフォルトではそれぞれローカライズ バージョンの「OK」と「キャンセル」になっています。 ダイアログ ボックスが閉じられて関数が戻る前に、ユーザーは確認またはキャンセルする必要があります。 ダイアログ ボタンのほかに、キャンセルするには Esc キーまたはプラットフォーム特有の他のジェスチャを選択することもできます。

Message パラメータはダイアログ ボックスの本体に表示されます。 メッセージが非常に長い場合は、切り捨てられるか、スクロール バーが表示されます。

OptionsRecord パラメーターを使用しダイアログ ボックスのオプションを指定します。 すべてのオプションがすべてのプラットフォームで利用できるわけではなく、ベスト エフォート方式で処理されます。

注意

以下のテーブルのオプションは、現在、キャンバス アプリでは使用できません。

オプション フィールド 内容
確認ボタン 確認 ボタンに表示するテキスト、デフォルトのローカライズされた「OK」テキストを置き換えます。
CancelButton キャンセル ボタンに表示するテキスト、デフォルトのローカライズされた「キャンセル」テキストを置き換えます。
肩書き ダイアログ ボックスの タイトル として表示するテキスト。 このテキストを表示するには、メッセージ フォントよりも大きく太字のフォントを使用できます。 この値が非常に長い場合、切り捨てられます。
サブタイトル ダイアログ ボックスの サブタイトル として表示するテキスト。 このテキストを表示するには、メッセージ フォントよりも大きく太字のフォントを使用できます。 この値が非常に長い場合、切り捨てられます。

Confirm 確認ボタンが選択されている場合は true を返し、それ以外の場合は false を返します。

構文

確認 ( メッセージ [, OptionsRecord ] )

  • Message - 必須。 ユーザーに表示するメッセージ。
  • OptionsRecord - オプション。 ダイアログの詳細オプションを提供します。 すべてのオプションがすべてのプラットフォームで利用できるわけではなく、ベスト エフォート方式で処理されます。 現時点では、キャンバス アプリでは、これらのオプションはどれもサポートされていません。

既知の問題

  • Navigate 関数は、ダイアログに対してモデルまたはカスタム ページを開くことをサポートしていません。 カスタム ページからのすべてのナビゲーションはインラインで開きます。
  • ナビゲーション機能では次を開くことがサポートされていません:
    • ダッシュボード コレクションまたは特定のダッシュボード。
    • 特定のモデル駆動型アプリ フォーム。
  • カスタム ページは、マルチセッション モデル駆動型アプリで現在のセッションの現在のアプリ タブにのみ開くことができます。

参照

クライアント API を使用してカスタム ページに移動する

モデル駆動型アプリのカスタム ページの概要