知識ゼロからはじめるローコーディング開発

Power Platformでのアプリ開発について、いろいろと書きたいと思います。

Power Apps のコレクションで連番を振り直すには

※2021年11月27日 一部修正

Power Apps でちょっと作りたいものがあったのですが、コレクションに割り当てている連番を、適時振り直さないといけない場面が出てきたのでメモをしておきたいと思います。

テストの準備ですが、ボタンアクション等でコレクションを作成しておきます。ClearCollectで作成するコレクション名はBox1としておきます。

列は”No”と”Item”を用意します。”No”列にセットする値ですが、データの
追加削除を繰り返した後のように飛び飛びの連番をセットしておきます。

f:id:island3m:20211121210324p:plain

 

これを一つのアクションで並び替えるようにします。ボタンを一つ用意して
プロパティOnSelectに下記のようにセットします。

ForAllを使うと対象となるレコード全てに対して何かしらのアクションを起こすことが出来ます。ここではCollectを使って、Box1を1レコードずつBox2にコピーをするという動作を設定します。その際、No列には「+1」が設定されているので、ForAllが1レコードずつ処理する度にBox2の行数をカウントして「+1」をした値を新規に追加します。これが繰り返されることによって連番が振り直されます。

f:id:island3m:20211127232209p:plain

 

下図の例で、Item列の順番はそのままに、Noに連番が降り直されているのがわかるでしょうか。最期にBox2の内容をBox1に移し替えれば処理は完了です。

f:id:island3m:20211121210742p:plain

コレクションを複写して元に戻すという手間はありますが、この方法が一番シンプルなのかなと思っています。連番を振り直す関数があったら嬉しいところです。