私が初めてPowerAppsの案件に参画したとき、同じチームにいたベテランさんから「コレクションが使えるようになったら一人前だ」と言われたことがあります。
そこで初歩的なコレクションのセット、使い方などをご紹介したいと思います。
今回は例題としてPowerAppsでSharePointリストを一覧表示し、検索機能やソート機能をつけるなら…という内容で進めていきます。
セット
SharePointリストのテーブルをそのままコレクションにセットしたい場合…
Collect(コレクション名, テーブル名); // コレクションを新規作成、またはデータを追加します
ClearColect(コレクション名, テーブル名); // コレクションの中身を全て削除して新しいデータをセットします
単純に中身を削除だけしたい場合は…
Clear(コレクション名); // コレクションの中身を全て削除します
そして並べ替えは…
SortByColumns(コレクション名, "カラム名", 順序); // 指定したコレクションのレコードを、指定したカラムを基準に並べ替えます
順序は昇順=SortOrder.Ascending、降順=SortOrder.Descendingで指定できます。
実装
ここまでできるようになれば、検索&ソート機能を実装することができます。
書棚にある本を一覧表示、検索&ソートをする場合で考えてみましょう。
用意するもの
SharePointリスト:bookshelf
カラム:ID,ISBN,タイトル,著者名,発行日
初期化用コレクション:clBooks
表示用コレクション:clSearchBooks(ギャラリーのitemsにはこのコレクションをセットします)
タイトルで検索する(PowerApps側に検索用inputBoxを設置しておく)
Collect(clBooks, bookshelf); // 初期化用コレクションにリストをまるごとセット
ClearCollect(clSearchBooks, Filter(clBooks, inputBox.Text in タイトル)); // 文字列の部分一致検索
タイトル順で並べ替えを行う場合は…
SortByColumns(clSearchBooks, "タイトル", SortOrder.Ascending);
全ての条件をリセットして初期表示に戻したい場合はクリアボタンを設置してonSelectに…
ClearCollect(clSearchBooks, clBooks); // 表示用コレクションに初期化用コレクションを上書き
をセットすることで検索状態&並べ替え状態を解除することができます。
最後に
この他にもコレクション内の特定のレコードを操作したり、特定のカラムのみ取り出したりなどいろいろな関数があります。気になった方は公式リファレンスを覗いてみてください。
私もまだまだ勉強中ですので、扱えるようになったらまたご紹介したいと思います。