見出し画像

【PowerApps】時間(時刻)によってNavigate先Screenを変える

If 関数Hour 関数比較演算子を組み合わせた構文で、Navigateの動きを自動で変える手順です。

はじめに

PowerAppsではボタンやタイマーのキープロパティ(OnSelectやOnTimerEndなど)にNavigate関数を入れることで、別Screenへ遷移させることができます。

OnSelect = Navigate( Screen名, ScreenTransition.Cover)

また、その画面遷移の際に条件を指定することができます。
今回は、時刻によって遷移先が変わるような構文の一例を紹介します。

構文

完成形

If(Hour(Now()) >= 13,Navigate(Screen5,ScreenTransition.Cover), Navigate(Screen1,ScreenTransition.Cover))

今回の完成形は上記のような感じ。構文を詳しく見ていきましょう。

If関数

If 関数は、true の結果が見つかるまで、1 つ以上の条件をテストします。

If および Switch 関数 - Power Platform | Microsoft Learn

今回使用した構文では
If( 条件式,  条件が正しい場合の処理,  そうでない場合の処理 )
という感じです。

Hour関数

Hour 関数は、日付/時刻値の時間のコンポーネントを 0 (12:00 AM) から 23 (11:00 PM) の範囲で返します。

Day、Month、Year、Hour、Minute、Second、Weekday 関数 - Power Platform | Microsoft Learn

今回使用した構文では、
Now 関数と組み合わせています。
Now 関数は、現在の日付と時刻を日付/時刻値として返します。
Hour(  Now()  )とすることで、現在の日付時刻から、〇時の値だけを0~24の範囲で取得します。

比較演算子  >=

『左辺が右辺以上』を表す比較演算子です。
Hour(Now()) >= 13
とすることで、13時以上の時間を表現します。

まとめ

上記の構文を組み合わせることで、OnSelectやOnTimerEndが実行されるタイミングが13時以降かどうかで遷移先のScreenを自動で変わるように記述することができます。

13時前のとき
13時以降のとき

私の職場では、PowerAppsをサイネージ的に使う際に、夕方の時間帯になったら定時退勤を促すページにいくような制御に活用しています。

ありがとうございました。


この記事が気に入ったらサポートをしてみませんか?