PowerAppsの使い方

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

PowerApps データソースから文字列+日付の複数条件でデータを取得する

Filter()関数を使用して、SharePointなどのデータソースから

複数条件でデータを取得する方法です。

 

事前準備

・文字列と日付の型のカラムがあるデータソースを準備してください。

・ギャラリーにデータソースを紐づけておいてください。

・テキストコントロールを準備してください。

・日付選択コントロールを準備してください。

 

この記事ではこのようなデータソースを扱います。

f:id:botherntu:20180824004159p:plain

 

 

GalleryのItemsプロパティを変更する

例えばGalleryのitemsプロパティに

 

Events //データソース名

 

と記述すると、データソースの中身が全件表示されます。

f:id:botherntu:20180823234952p:plain

 

ここに、Filter()関数を用いることで、必要なデータを絞り込むことができます。

 

FilterTableFormula1 [, Formula2, ... ] ) 

Filter( データソース名条件1 [, 条件2, ... ] )

 

という感じで使用できます。今回は

Filter(
Events,
Title=TextSearchBox1.Text,
Date >= DatePicker1.SelectedDate,
Date < DatePicker1.SelectedDate + 1
)

 と記述してみます。

すると、テキストに入力したタイトルに完全一致するイベントで、かつ

選択した日付のイベントがリストに表示されます。

 

実際にはタイトル検索は部分一致(in)や前方一致(StartWith)などで実装したほうが便利ですね。場合によってはそもそもSearch()関数のほうがいいかも。

日付での検索も日付選択を2つ用意しておいて範囲検索で使用する場合が多いと思います。

(ぶっちゃけ実用的な例じゃないです・・・試しに書いてみて、動きを理解する用。)

 

 

とりあえず複数条件でのデータ取得の方法はここまでで完了です!

 

委任の罠

ただ、ここで注意点があります。

もしかしたらPowerApps上で関数に波線が出ていませんか?

 

こんな風に。

f:id:botherntu:20180827010335p:plain

 

 

これは、委任ができていない状態です。

この状態だと非常によろしくないです。データソースの一部しか検索できていない状態です。

データの持ち方を工夫する、取得の方法を変える、別のデータソースの利用を検討する、などの対応が必要です。

 

委任についてはまた記事にまとめようと思います。

 

 

f:id:botherntu:20180824000631p:plain

 

 

docs.microsoft.com

わかりにくい!知りたいことが書いていない!記事に誤りがある!この記事イケてないな!
などありましたらご指摘いただけると幸いです。

コメントまたはTwitterの方までお願いします。