アプリ内でDatebaseのPROPERTY値を一括変更

商品のCollectionに価格と個数というPROPERTYを作って値段を乗算のFormulaで出す、単純な計算アプリを作っています。
商品一覧をlistで表示して、クリックで個数が変更→計算結果を出せるところまではできましたが、個数をリセットするためにその商品毎にupdate(個数を0)のアクションを入れたボタンを押さなければなりません。
一括で変更するような設定は可能でしょうか?

今年の1月に質問されて誰も回答されてないですが、AdaloでDBのプロパティーの値を一括変更したいという要望は結構多く、海外のAdalo Forumを見ていると「定番の質問」のようになっているようです。

7/10に投稿された別の質問にCountDown Timerというコンポーネントを使った解決方法を回答したのですが、本件のプロパティー値の一括変更もこのCountDown Timerが応用できます。

(CountDown Timerとは?)
AdaloのMarket Placeに入っているコンポーネントで、その名の通りカウントダウンをするタイマーで、数字がだんだん減っていき、0になった瞬間に予め設定しておいたActionが起こせるという代物です。(時間をトリガーとした一括変更などに使えます)

(考え方)
本件では商品のDBがあり、単価と個数で構成されています。個数を一括でリセットしたいというのが質問の内容です。
商品の単価と個数のDBを作り、それを表示するシンプルリストと紐づけます。このリストの中にCountDown Timerをセットして、一括で個数プロパティをリセットします。(0にします)
簡単なサンプルを作ったので画面のスクリーンショットとサンプルアプリを以下に示します。

1.データベース

2.画面の遷移

3.CountDown timerの設定

(ポイント)
常時CountDown Timerが表示されているとタイマーが0になった瞬間に個数が全部0にリセットされてしまうので、visiblityの設定で条件が満たされた時だけタイマーが出てくるようにしました。Home画面の上部にあるtext inputに0という数字を入れるとCountDown Timerが出現し、10秒経過すると0になり、DBをUpdateするActionが発動します。(UpdateのActionでは商品の個数をすべて0にリセットします。)

個数が一括変更されるので間違ってボタンを押して意図せず変更したということになったら大変なのでわざと面倒なやり方でタイマーが出てくるようにしています。

4.サンプルアプリ

CountDown Tomerはいろいろな場面で使えますので、覚えておくと便利ですよ。

1 Like