コルネの進捗や備忘録が記されたなにか

進捗や成果物や備忘録てきななにかを雑に更新していきます。

Power Appsでラベルにテーブルの情報を表示させる(ユーザ/グループ列)


スポンサードリンク

はじめに

今回はこちらの質問に回答します。

f:id:koruneko:20220313172614p:plain

ユーザ情報を表示する

今回は以下のようなリストを用意しました。

f:id:koruneko:20220313174753p:plain

こちらの「Users」列が「ユーザーとグループ列」になっています。

f:id:koruneko:20220313174603p:plain

このリストをもとにアプリを作成していきます。

BrowseScreenといわれていることから、0からアプリを作成しているのではなく、リストからアプリを作成されているかと思いますので、リストからのアプリ作成をベースに説明します。

ラベルにユーザ情報を表示させる

まず、ラベル内でUsers情報を表示させようとすると、以下のようなエラーが発生するかと思います。

f:id:koruneko:20220313175149p:plain

これは、エラーでも記載されている通りラベルにはText値が必要なのに対し、現在設定されている ThisItem.Users はテーブル型なのが原因です。

なのでテーブル型の情報を加工してテキスト型にしてあげます。

今回欲しい情報がユーザ/グループの表示名だと仮定し、これらを表示させるようにします。
この表示名は ThisItem.Users.DisplayName で取得できます。
ただ、これもテーブル型ですので、このままでは使えません。

f:id:koruneko:20220313175653p:plain

そこでConcat関数を用いて、テーブル内の特定のフィールドに設定されている値を結合させて1つの文字列に設定してあげます。

例えば、表示名を「; 」で区切って表示させようとすると以下のような式になります。

Label.Text

Concat(ThisItem.Users, DisplayName & "; ")

これにより、下記の表示になります。

f:id:koruneko:20220313180122p:plain

DetailScreenと同じような表示にする

DetailScreenでこの「Users」フィールドを表示した場合、設定されているユーザ/グループが多いと以下のような表示になります。

f:id:koruneko:20220313180439p:plain

⇓ 「すべて表示」選択

f:id:koruneko:20220313180452p:plain

これと同じ表示をBrowseScreenでも行ってみます。

まずこちらですが画面から、ラベルではなくコンボボックスが利用されている。表示モードは「ビュー」である。ということが確認できるかと思います。

f:id:koruneko:20220313181359p:plain

なのでBrowseScreenに、コンボボックスをビューモードで追加します。

残り設定が必要な箇所は ItemsDefaultSelectedItemsDisplayFields です。(座標やサイズはイイ感じに設定しておいてください。)

Items にはコンボボックスをユーザが操作したときの選択肢を設定します。
今回このコンボボックスはビューモード固定なので、直接は関係ないですし、最悪設定していなくていいですが、後述するフィールドの設定でここ設定されていないとGUIでの設定ができないので、設定することによってデメリットが発生するわけでもないですし、(本来設定されてるべき項目なので)設定しておきましょう。

特定リストのフィールドの選択肢はChoices関数で取得可能です。

ComboBox.Items

Choices(UserLists.Users)

DefaultSelectedItems では、デフォルトで設定されている値を設定します。
よく間違えて Default に設定されて、期待通りの動作をしない!
という声をききますが、ドキュメントの通り設定すべきは DefaultSelectedItems なので気を付けましょう。

docs.microsoft.com

今回表示させていのはユーザ/グループ情報なので以下を設定します。

ComboBox.DefaultSelectedItems

ThisItem.Users

恐らくここまで設定が完了すると「i:0#.f~」や「c:0o.c~」のような文字列で始まるClaims情報が画面に表示されているのではないかな?と思います。

今回表示させたいのは「DisplayName」(表示名)ですので最後にこちらを変更します。

「フィールド」の「編集」を選択して「主要なテキスト」で「DisplayName」を選択してください。

f:id:koruneko:20220313184039p:plain

これで表示名が表示されるようになりました!

f:id:koruneko:20220313184210p:plain

おわりに

以上、BrowseScreenでユーザ/グループ情報を表示させる方法でした。

Power Appsはローコードですが、とはいえデータ型は意識して開発を進めた方がいいと思います。

他質問などある方いらっしゃいましたらお気軽にどうぞー

marshmallow-qa.com


スポンサードリンク