ふる雨はあとなく晴れて

弱小情シス社員の雑記・備忘録

【Power Apps】comboboxと画面遷移と初期値について

PowerAppsのキャンバスアプリで下記の動きを実装しようと

手こずったので備忘としてメモ。


【画面構成とやりたいこと】

  • Screen1とScreen2の2画面構成
    • Screen1はユーザー一覧 (userTableというリストをギャラリー表示)
    • Screen2はユーザーの詳細情報 (userDetailというリストをギャラリー表示)
  • Screen1からボタンを押すとScreen2へ画面遷移
    • Screen1から2に遷移するときにユーザーアドレスを引き渡して
      Screen2のコンボボックスで選択された状態にする

【メモ】

<Screen1側>

  1. Screen1の画面遷移ボタンには
    Navigate(Screen2,CoverRight,{userMail:ThisItem.Mail})
    ※ユーザー一覧(userTable)をギャラリー表示している想定。
    ※userMailという変数で選択ユーザーのメールアドレスを画面に引き渡し

<Screen2側>

  1. comboboxのデータソースはuserTableとしています
  2. 初期値はDefaultじゃなくてDefaultSelectedItemsに設定する
    まずここでつまずく。。
  3. 初期値として設定する値について
    単純に初期値として変数 userMail を与えても、コンボボックスに
    メールアドレスが張り付いただけで選択された状態にはならず。。
    DefaultSelectedItems: userMail (機能せず・・・)

    ということで初期値のプロパティ定義を下記のとおり変更。

    DefaultSelectedItems: UserMail
     ⇒引き渡すもともとの値がレコード型ならこれで
    DefaultSelectedItems: [UserMail]
     ⇒引き渡す変数が文字列で来るならこれでも

    最初は引き渡された変数の値でlookupで検索した結果のレコード渡していたけど
    そんな遠回りしなくても良かったようで
    DefaultSelectedItems: Lookup(userTable,mail=UserMail)

    コンボボックスのデータソースに対して、
    引き渡されたメールアドレスと一致するレコードを初期値にするという考え方。
    なるほど・・・。

画面間で引数渡すのは特に問題なかったんですが、
どうにもコンボボックスの初期値の考え方とかでつまずいて

まだまだ理解が浅いなと痛感。。