いつもお世話になります。
先日投稿させてもらったアプリをさらに進化させようとしていますが苦戦しています。皆さんのお力をお貸しください。
今回実現したいことは、DBに登録されている年月をリストとしてドロップダウンに反映させて、反映させた年月を選ぶとそれに対応したデータがチャートに表示したい。
色々試してみましたが、全く歯が立たずです。
ご教授よろしくお願いします。
【画面イメージ】
【DBの状態】
いつもお世話になります。
先日投稿させてもらったアプリをさらに進化させようとしていますが苦戦しています。皆さんのお力をお貸しください。
今回実現したいことは、DBに登録されている年月をリストとしてドロップダウンに反映させて、反映させた年月を選ぶとそれに対応したデータがチャートに表示したい。
色々試してみましたが、全く歯が立たずです。
ご教授よろしくお願いします。
【画面イメージ】
【DBの状態】
Dropdownの値として、DBの年月項目をRounded to monthしてからGroup by同じ項目として設定します。
下のグラフに設定するデータも同じ方法で処理した上でGroup byのaggreementにcountやsumなどで値を割り当てる。
でできると思います!
が、この処理って毎回画面を開いた時に計算するのは計算コストがもったいないです。
見たい項目が決まっているのであればrecurringで毎日バッチで計算させた解をDBに格納しておくのが良いと思います。
会社の分類は入れていませんが、概念的なサンプルを作ってみました。
画面内で1回で処理を行う想定の場合、Dropdownに設定する内容が日付項目である必要が出てしまうため、2021年10月などの表記が難しいかもしれません。
現状のサンプルとしては、左に表示されている内容からDropdownに日付を設定(毎月1日0時にしている)。
その日付をもとに、Dropdown.value<=集計範囲<Dropdown.value.addMonth(1) として1ヶ月間の値の範囲を検索して計算しています。
日付を綺麗に表示させる場合は、Dropdownに表示させる専用のテーブル(yyyy/mmとdateデータのみ)を用意してそちらでフィルタさせ、dateフィールドを使って集計をかけると良いと思います。
実働サンプル
エディタ