2018年4月 3日 (火)

[PowerApps] SharePoint リストデータをグループ化する (1)

PowerApps も3月末に大幅アップデートがあり、いよいよ使ってみようと思う方も多いと思います。弊社でも私が独自に作成したオリジナルコースで PowerApps や Flow を学べるようになっていますが、GroupBy関数について取り上げていなかったので、ブログで補足しておこうと思います。すでに受講いただいた方にとってはフォローアップ情報です。

SharePoint リストデータをグループ化して PowerApps 上に表示するには GroupBy関数を使うと便利です。

例えば次のようなリストがあるとします。

2018-04-03_12-43-31

まずこのSharePoint リストデータを 次のように PowerAppsに取り込みます。

次にボタンを配置し、クリックしたら コレクション が作成されるようにします。このためには、ボタンの OnSelect プロパティに次の式を書いておきます。ちなみに、ボタンの表示名は "データの取得" としています。

2018-04-03_12-38-30

この関数の意味を簡単に解説しましょう。

ClearCollect関数を使って "ProductList" というデータソースを作成します。このデータソースの内容は GroupBy関数を使って "CategoryName" 列でグループ化した SharePoint リスト(Products) です。その他の列は "Details" (名前は任意)という列に入れ子にします。

確認できたら、データテーブルコントロールにこのデータソースを追加してみましょう。商品区分だけが表示されるようにします。

 

では続いて商品区分の内訳を表示できるようもう一つデータテーブルを挿入しましょう。データテーブルの Items プロパティには次の式を書きます。

<先に追加したデータテーブル名>.Selected.Details

これにより、先に追加したデータテーブルの項目を選択するとその詳細がデータビューに表示されるようになります。

 出来上がったアプリの見栄えを整えれば次のように動作します。

まずは基本を紹介しました。PowerApps は Notes データベースの移行にも一部対応できるはずです。今回のように区分別で詳細を見たいというようなアプリも利用できるところがあるでしょう。

データテーブルは編集機能を持っていないため、今回作成したのはあくまでデータを簡易表示するためのビューアーです。ただし、実用アプリも、こうした機能群を組み合わせて応用していくことになります。ちなみに、取得するデータ量が多くなると委任可能な関数等を駆使する必要があります。またその辺は次回以降でご紹介します。

コメント