ふる雨はあとなく晴れて

暇人の雑記・備忘録

【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)
     ⇒コンボボックスのデータソースに対して、
      引き渡されたメールアドレスと一致するレコードを検索して、
      その結果を初期値にする場合。

    プロパティのデータ型に合わせて適切な値をいれるってのが、当たり前と言えば当たり前なんでしょうけど。。
    いまいち公式のドキュメントの読み込みとか理解が出来てないんですよね。。
    欲しい情報ピンポイントで探すのが難しい。

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