はじめに
今回はこちらの質問に回答します。
ユーザ情報を表示する
今回は以下のようなリストを用意しました。
こちらの「Users」列が「ユーザーとグループ列」になっています。
このリストをもとにアプリを作成していきます。
BrowseScreenといわれていることから、0からアプリを作成しているのではなく、リストからアプリを作成されているかと思いますので、リストからのアプリ作成をベースに説明します。
ラベルにユーザ情報を表示させる
まず、ラベル内でUsers情報を表示させようとすると、以下のようなエラーが発生するかと思います。
これは、エラーでも記載されている通りラベルにはText値が必要なのに対し、現在設定されている ThisItem.Users
はテーブル型なのが原因です。
なのでテーブル型の情報を加工してテキスト型にしてあげます。
今回欲しい情報がユーザ/グループの表示名だと仮定し、これらを表示させるようにします。
この表示名は ThisItem.Users.DisplayName
で取得できます。
ただ、これもテーブル型ですので、このままでは使えません。
そこでConcat関数を用いて、テーブル内の特定のフィールドに設定されている値を結合させて1つの文字列に設定してあげます。
例えば、表示名を「; 」で区切って表示させようとすると以下のような式になります。
Label.Text
Concat(ThisItem.Users, DisplayName & "; ")
これにより、下記の表示になります。
DetailScreenと同じような表示にする
DetailScreenでこの「Users」フィールドを表示した場合、設定されているユーザ/グループが多いと以下のような表示になります。
⇓ 「すべて表示」選択
これと同じ表示をBrowseScreenでも行ってみます。
まずこちらですが画面から、ラベルではなくコンボボックスが利用されている。表示モードは「ビュー」である。ということが確認できるかと思います。
なのでBrowseScreenに、コンボボックスをビューモードで追加します。
残り設定が必要な箇所は Items
と DefaultSelectedItems
と DisplayFields
です。(座標やサイズはイイ感じに設定しておいてください。)
Items
にはコンボボックスをユーザが操作したときの選択肢を設定します。
今回このコンボボックスはビューモード固定なので、直接は関係ないですし、最悪設定していなくていいですが、後述するフィールドの設定でここ設定されていないとGUIでの設定ができないので、設定することによってデメリットが発生するわけでもないですし、(本来設定されてるべき項目なので)設定しておきましょう。
特定リストのフィールドの選択肢はChoices関数で取得可能です。
ComboBox.Items
Choices(UserLists.Users)
DefaultSelectedItems
では、デフォルトで設定されている値を設定します。
よく間違えて Default
に設定されて、期待通りの動作をしない!
という声をききますが、ドキュメントの通り設定すべきは DefaultSelectedItems
なので気を付けましょう。
今回表示させていのはユーザ/グループ情報なので以下を設定します。
ComboBox.DefaultSelectedItems
ThisItem.Users
恐らくここまで設定が完了すると「i:0#.f~」や「c:0o.c~」のような文字列で始まるClaims情報が画面に表示されているのではないかな?と思います。
今回表示させたいのは「DisplayName」(表示名)ですので最後にこちらを変更します。
「フィールド」の「編集」を選択して「主要なテキスト」で「DisplayName」を選択してください。
これで表示名が表示されるようになりました!
おわりに
以上、BrowseScreenでユーザ/グループ情報を表示させる方法でした。
Power Appsはローコードですが、とはいえデータ型は意識して開発を進めた方がいいと思います。
他質問などある方いらっしゃいましたらお気軽にどうぞー