PowerApps|ギャラリーで行番号を取得する方法(キャンバスアプリ)
PowerAppsのギャラリーは、
テーブル型のデータを順に表示させることができるコンポーネントです。
特定のテーブル型のデータを一覧表示させたい時に活躍します。
しかし、一覧表示しているときに、行番号を表示させたいときがあるかと思います。
この記事では、ギャラリーに行番号を表示させるまでの一連の方法について紹介していきます。
全て完了すると、以下のように実際にギャラリーの項目に番号をつけられるようになります。
目次(クリックで読みたい部分にジャンプできます)
全体の流れ
まずは、行番号を取得するまでの全体の流れを紹介します。
全体の流れ
- ギャラリーのItemsプロパティに行番号を追加。
- 行番号データを表示させる
この2ステップで表示させることができます。
ギャラリーは、テーブル内で持っているデータしか表示させることができなく、
テーブルには、行番号という列は持っていないのです。
そのため、行番号を追加&表示という方法で進めていきます。
では、詳しいやり方を見てみましょう。
①ギャラリーのItemsプロパティに行番号を追加
あなたが今設定しているギャラリーのItemsプロパティには、テーブル型のデータが配置されていると思います。
Filter関数を使用したり、直接テーブル名を宣言しているだけだったり、色々なパターンが考えられますが、
今回は、直接テーブル名を宣言している場合を想定します。
Filter関数を使用している場合でも、やることは変わりませんので、置き換えて考えてみてください!
Before〜実装する前のitemsプロパティ〜
まずは、実装する前のItemsプロパティは以下のようになっています。
「新しいテーブル」はテーブル名です。
上記の表記を以下のように書き換えます。
With({_items: 新しいテーブル},
ForAll(Sequence(CountRows(_items)),
Patch(Index(_items, Value),
{RowNumber:Value}
)
)
)
after〜実装した後のItemsプロパティ〜
コードの解説
コードの全体の意図は、
テーブル列に新たな列「RowNumber」を追加して、列番号を振っています。
ForAll(Sequence(CountRows(_items)),
ForAll関数とSequence関数にて、_itemsの数だけ繰り返すという処理を指定しています。
Sequence 関数 - Power Platform | Microsoft Learn
Patch(Index(_items, Value),
{RowNumber:Value}
)
Patch関数では、特定の行のデータを追加・更新ができます。
Valueには、ForAll関数で実行している際の「今何番目を実行しているか」が格納されています。
それらを、RowNumberにそれぞれ格納していっているのです。
これで、元のデータに「RowNumber」という列が追加されました。
②行番号データを表示させる
では、ここまでできたらあとは簡単です。
行番号データ(RowNumber)を表示させれば良いです。
適当なラベルなどを指定して、Textプロパティに以下を指定しましょう。
ThisItem.RowNumber
これで各データが持っている行番号が表示されるでしょう。
まとめ
今回は、ギャラリーに行番号を表示させる方法について紹介していきました。
Itemsプロパティに少し複雑なコードを追加しますが、行番号を触れることで「前後の要素を取得できたり」するようになるので、応用を効かせることも可能です。
ぜひ試してみてくださいね。では、また。