PowerApps|Navigate関数の使い方|3つのできる事を事例もとに解説
Navigate関数の使い方
PowerPlatform(PowerApps) を使うにあたり序盤に勉強する事になるNavigate関数の使い方を整理します。
整理しようと考えた理由は「Navigate関数=画面遷移」という思考の方が多いと感じたからです。
私いくつかの外部講習に参加しましたがどの講習でもNavigate関数を教える際は以下の様に教えていました。
- 〇〇画面に遷移する為各要素(ボタンやアイコンなど)のOnSelectプロパティに関数を記入
- 関数の書き方 ・・・ Navigate(遷移先)
理由なくこの関数を使ってくださいという事ですね。
思考停止感があります・・・。
ポジティブにとらえれば余計なことを伝えないシンプルな文章になっており初心者向けではあります。
Navigate関数には画面遷移を含めてできる事が3つあります。
オプションの位置付けとなっている残りのできる事を紹介します。
Navigate関数は画面遷移だけではなく他にもできる事があります。以降で紹介、解説していきます。
関連記事
Navigate関数ができることの中にある「コンテキスト変数の受け渡し」についてフォーカスした記事です。
変数の考え方、使い方に関する記事はこちらです。
グローバル変数とコンテキスト変数の使い方について解説しています。
関連書籍
PowerAppsは書籍を使って反復練習することが習得への近道です。
理由は「一度テキストを読んだだけでは理解することが難しい為」です。
書籍を使えば自分のペースで地道に勉強することができますよ。
Navigate関数とは
Navigate関数ができることは大きく分けて3つです。
できること
Microsoftのドキュメントから説明を引用します。
表示される画面を変更します。
Microsoft:Back および Navigate 関数より抜粋
必須の作業は1つです。全部で3つですのであと2つできることがあります。
- 画面遷移(画面Aから画面Bへの遷移など)
- 画面遷移時の画面効果(フワッと画面を切り替えたり左右にスライドさせるなど)
- コンテキスト変数の受け渡し(画面間でもコンテキスト変数を受け渡すことができる)
続いて構文とパラメータをご覧ください。残り2つのできる事を実現させましょう。
構文とパラメータ
構文についてもMicrosoftのドキュメントを引用、加工しました。
加工した理由は「そのまま載せると分かりにくい」為です。余計な情報を省いてシンプルにしました。
構文とパラメータ
Navigate( Screen [, Transition [, UpdateContextRecord ] ] )
Microsoft:Back および Navigate 関数より抜粋、加工
番号 パラメータ名 説明 1 Screen 必須。 表示する画面。 2 Transition オプション。 既定値は None 。
現在の画面と次の画面の間で使うビジュアルの切り替え。3 UpdateContextRecord オプション。新しい画面のコンテキスト変数 を更新。 読みやすくするために抜粋してテーブルにしました
必須で指定するパラメータはScreenのみです。多くの講習ではここまでを紹介していることが多いです。
以降2つのパラメータについて解説します。
Screen
第1引数はScreenです。遷移したい画面(スクリーン)を記入しましょう。
Transition
第2引数はTransitionです。かんたんに申し上げますと「画面遷移時のアクション」です。
以下パターンの様に画面を遷移させることができます。実際に選択、実行して動きを確認してみてください。
Microsoft:Back および Navigate 関数より抜粋
切り替えの引数 内容 デモ ScreenTransition.Cover 新しい画面は、現在の画面を覆うためにスライドしてビューに表示され、右から左に移動します。 ScreenTransition.CoverRight 新しい画面は、現在の画面を覆うためにスライドしてビューに表示され、左から右に移動します。 ScreenTransition.Fade 現在画面がフェードアウトし、新しい画面が表示されます。 ScreenTransition.None (既定) 新しい画面は現在の画面をすばやく置き換えます。 ScreenTransition.UnCover 現在の画面が右から左にスライドして表示されなくなり、新しい画面が表示されます。 ScreenTransition.UnCoverRight 現在の画面が左から右にスライドして表示されなくなり、新しい画面が表示されます。
色々ありすぎて選べない・・・。という声を聞きます。
無理に使うことはないです。基本はデフォルト(None)で良いですよ。
UpdateContextRecord
第3引数のUpdateContextRecord。ここがNavigate関数の一番難しいところです。
変数の考え方が絡んできます。変数については私のブログ記事をご覧ください。
ここで使用する変数はコンテキスト変数という要素です。文字列、数値、日付などを格納することができます。
基本的にコンテキスト変数は指定した画面内で使用する変数ですが例外があります。
UpdateContextRecordにパラメータとして情報を用意することで別の画面に変数を送ることができます。
変数の設定(登録)方法や使用方法は次のブロックで用意した「使用例」をご確認ください。
使用例
こちらもMicrosoftのドキュメントを参考に情報を整理しました。
番号 | 計算式 | 内容 | 結果 |
---|---|---|---|
1 | Navigate(screen2) | 画面切り替え時のアクション無しで次の画面を表示 | screen2が表示される |
2 | Navigate( screen2, ScreenTransition.Fade ) | フェードの切り替え効果を使って次の画面を表示 | 現在の画面がフェードアウトしてからscreen2が表示される |
3 | Navigate( Details, ScreenTransition.Fade, { ID: 12} ) | フェードの切り替え効果を使って次の画面を表示 コンテキスト変数 ID の値を 12 に更新 | 現在の画面がフェードアウトしてからscreen2が表示される screen2の画面上のコンテキスト変数 ID が 12 に設定される |
- 1番のコードではパラメータScreenのみを指示しています。
- 2番のコードではパラメータScreenとTransitionを指示しています。
- 3番目のコードではパラメータScreenとTransitionに加えUpdateContextRecordを指示しています。
関数を書く場所
一例を紹介します。基本的にはボタンやアイコンのOnSelectプロパティに関数を記入する事になります。
動画で動作確認
動画を作成しました。(約3分半)Navigate関数に興味がある方は初心者が多いと想定しています。
初心者の頃は文字から実際の操作を想像するのが難しいと思われます。私自身がそうでした。
動画も一部分を切り取らずできるだけ一連の流れを見ていただいた方が理解が進むと感じています。
よってアプリ起動時から使用例の関数を書いて実行するまでの一連の流れを動画にすることにしました。
ポイントだけ見るのも良いですが通しで作業を見る事も必要ですね。
細かい事が分かる様になりました。
コントロールを用意する様や関数を書く場所がよく分かります。
動画を見ると自分でもやってみようと思えてきます。
最初に青色の見出しを用意する作業やフォームの複製、アイコンを用意する方法等全部見える様にしました。
ユーザー目線では分からないところです。細かい作業の積み重ねでアプリができていることが分かります。
まとめ
Navigate関数についてできる事を深掘りしました。
スクリーンが切り替わる際のアクションや変数の取り回しなど細かいところに気が利く関数ですね。
だからといって無理に機能を最大限に使わなくても良いです。基本は画面遷移の為に使ってください。