PowerApps データソースから文字列+日付の複数条件でデータを取得する
Filter()関数を使用して、SharePointなどのデータソースから
複数条件でデータを取得する方法です。
事前準備
・文字列と日付の型のカラムがあるデータソースを準備してください。
・ギャラリーにデータソースを紐づけておいてください。
・テキストコントロールを準備してください。
・日付選択コントロールを準備してください。
この記事ではこのようなデータソースを扱います。
GalleryのItemsプロパティを変更する
例えばGalleryのitemsプロパティに
Events //データソース名
と記述すると、データソースの中身が全件表示されます。
ここに、Filter()関数を用いることで、必要なデータを絞り込むことができます。
Filter( Table, Formula1 [, Formula2, ... ] )
Filter( データソース名, 条件1 [, 条件2, ... ] )
という感じで使用できます。今回は
Filter(
Events,
Title=TextSearchBox1.Text,
Date >= DatePicker1.SelectedDate,
Date < DatePicker1.SelectedDate + 1
)
と記述してみます。
すると、テキストに入力したタイトルに完全一致するイベントで、かつ
選択した日付のイベントがリストに表示されます。
実際にはタイトル検索は部分一致(in)や前方一致(StartWith)などで実装したほうが便利ですね。場合によってはそもそもSearch()関数のほうがいいかも。
日付での検索も日付選択を2つ用意しておいて範囲検索で使用する場合が多いと思います。
(ぶっちゃけ実用的な例じゃないです・・・試しに書いてみて、動きを理解する用。)
とりあえず複数条件でのデータ取得の方法はここまでで完了です!
委任の罠
ただ、ここで注意点があります。
もしかしたらPowerApps上で関数に波線が出ていませんか?
こんな風に。
これは、委任ができていない状態です。
この状態だと非常によろしくないです。データソースの一部しか検索できていない状態です。
データの持ち方を工夫する、取得の方法を変える、別のデータソースの利用を検討する、などの対応が必要です。
委任についてはまた記事にまとめようと思います。
PR
Power Apps や Power Automate に関する技術支援を提供しています。
Power Apps / Power Automate 技術支援サービス | ZEE CitizenDevSupport
https://powerapps.zee-citizendevsupport.com/