Microsoft

Power Appsで複数のリストを纏めてギャラリーまたはテーブルに表示する

Power Appsで複数のデータソースからデータを引っ張ってきたい時はありませんか?

通常は1つのデータソースからしか情報は取得できませんが、コレクションを使えば、列名が違う場合でも、複数のデータソースを1つにまとめておいて、疑似的に1つのデータソースとしてギャラリーやテーブルに指定することも可能になります。

データをまとめる

データソースの作成

まずはソースとなるSharePointリストを作成します。
今回は果物、野菜、ドリンクの名前と数を記載した3つのリスト用意してみました。

果物リスト
野菜リスト
ドリンクリスト

Power Appsとの接続

Power Appsでアプリを作成後、データ欄から「SharePoint」を検索して選択。表示された任意のサイトから作成したリストを選択します。

このままでは1つずつしか確認が出来ないので、データをまとめて1つのデータとしてしまいましょう。

データソースを1つにする

アプリ(App)のOnstart に以下のコードを書いてまとめます。
まず、ClearCollectでコレクションにmultiCollectionという1つのデータとして格納。
ForAllで各アイテムに対してループ処理を行い、新しいレコードを生成しています。

今回はそれぞれ名称の列をまとめて「品物名」としましたが、元の列名でも問題ありません。

実際のコード

ClearCollect(
    multiCollection,
    ForAll(
        果物,
        {
            品物名: 果物名,
            数: 数
        }
    ),
    ForAll(
        野菜,
        {
            品物名: 野菜名,
            数: 数
        }
    ),
    ForAll(
        ドリンク,
        {
            品物名: ドリンク名,
            数: 数
        }
    )
)

Power Appsではコレクションを実際に確認出来ます。左のメニューバーから[変数] > [コレクション] を選択し、ビューテーブルを表示してみましょう。中身を確認すると、データがコレクションにまとめて格納されています。

コレクションの確認
コレクション内容

実際の表示

テーブルの場合

では、早速データを利用してみます。

アプリ上にデータテーブルを配置。
DataTable1のItemsには、先ほどのMulticollectionを指定します。プロパティのフィールドから各列を選択。
すると、テーブルにまとめたデータが表示されました

ギャラリーの場合

ちなみに、ギャラリーに表示させたい時も同様です。
以下ではGallery1のItemsMulticollectionを指定しています。ギャラリーにも複数だったデータが入りました。

まとめ

今回は2つのフィールド(列)で行いましたが、リスト上に多くの列が存在する場合や、列名がそれぞれ違う場合も、コレクション上に新しいレコードを作成することで全てまとめることが可能です。


色々やってみたいけれど、方法が分からないという方に届けば幸いです。
今後もPower Appsの手順についての記事をアップしていく予定ですので、どうぞご覧ください!

こんなことが知りたい、これが分からないなどのご希望・ご要望ありましたら教えてください。
もちろん、Power Apps開発についてのお声掛けもお待ちしております!

千葉 玲奈

千葉 玲奈

常に成長し続ける姿勢を大切に、日々勉強中です。 主にMicrosoft365の設計構築を担当。技術面に留まらず、皆の「やりたい」に応えるべく人の想いに寄添った提案ができるよう努めています。

TOP