Power Appsの使い方

Power AppsとPower Automateの使い方やできることがわかるブログを目指しています。

Power Apps コレクション 動的に連番コレクションを作成する

コレクションをPower Appsのみ で動的に作成したい場合に使える例をひとつ。

今回挙げるのはループ処理でコレクションを追加していく方法です。

 

コールバック的に使えるSliderを用意する

Power Apps はループ処理系に弱いです。for eachとかfor文とかも使えません。

 

何度も同じ処理をさせたい場合、タイマーコントロールまたはスライダーコントロールを使用すると実現させることができます。

 

今回はスライダーを使用してみます。

 

スライダーを設置しSlider.Valueに適当な変数を指定します。

 

Slider.Value

SliderValue

 

※変数は事前にOnVisibleなどで初期化しておく必要があります。

 

Slider.OnChangeで変数の値を変更する

Slider.OnChange

UpdateContext({SliderValue:SliderValue+1})

 

このようにすると、無限にOnChangeの処理が実行されるようになります。

 

Slider.OnChangeでコレクションに追加する

処理がループで実行されるようになったので、ここでコレクションに追加していきます。

 

Slider.OnChange

Collect(colItems,{Index:SliderValue});

UpdateContext({SliderValue:SliderValue+1});

 

指定した回数で処理をやめる

このままでは無限に実行されてしまうので、条件分岐で変数を変更しない分岐を作ります。

 

Slider.OnChange

Collect(colItems,{Index:SliderValue});

If(

    SliderValue < 10,

    UpdateContext({SliderValue:SliderValue+1})

)

 

上記の例では固定値の10を用いていますが、スライダーやドロップダウンで選択した値を参照させ、ユーザが選択した任意の数字を渡すことも可能です。

 

処理を発火する

処理を発火するには、Sliderコントロールのリセットを行います。

 

Screen.OnVisible

Reset(Slider)

 

これでコレクションを動的に作成することができます。

 

 

スライダーのループ処理については下記のリンクを参考にさせていただきました!

参考URL

#PowerAppsPowerAppsでタイマーコントロールを使わずにタイマーコントロールよりも高速なループを実行する方法

https://qiita.com/github129/items/75f5f83d9842aab89da3

Power Apps や Power Automate に関する仕事のご依頼は下記ページからお問い合わせください。
ZEE CitizenDevSupport