SharePointのリストをスマホで編集しやすくするためにPower Appsのキャンバスアプリを作成したが、必要なものだけが表示されるようにしたかった。
例えば交通費の経費申請をする場合など。
経費リストには交通費以外の経費申請の内容が登録されていくが、それは申請する経費の種類によって入力する内容が異なったりする。
その時に一覧画面に交通費以外の申請内容が表示されても困るので絞り込みをしたかった。
結論
BrowseScreed1 -> BrowseGallery1 -> 詳細設定 -> データ -> Items に設定されている内容(Filter関数)を変更する。
※PowerAppsがキャンバスアプリを作成した際に自動で生成するコントロール名で記載しています。
Filter関数には条件(Formula)を複数指定できるので、絞り込みたい条件をカンマ区切りで指定していく。
例えば
Filter([@経費], 経費種別.Value = "交通費", StartsWith(Title, TextSearchBox1.Text))
など。
ここの数式のポイントが
- 経費種別.Value としている。(経費種別はSharePointリストの1項目で選択肢)
- =で文字列の一致を判定している。
の2つ。
経費種別.Value としている事
SharePointリストで選択肢の項目に対して文字列の比較をしようとした場合、選択肢項目は文字列ではないのでValueプロパティで選択している項目の文字列を取得する必要がある。
※これが選択肢ではなく、1行テキストとかであれば項目名を直接指定するだけで済む。
=で文字列の一致を判定している
Power Appsの数式にはIsMatch関数が存在する。
しかしこの関数を使おうとした場合に、以下の様な警告が表示された。
委任に関する警告です。この数式の "Filter" の部分は、大きなデータ セットで正常に機能しない可能性があります。
データ ソースは数式を処理できずに、不完全なデータ セットを返すことがあります。データ セットが不完全な場合、アプリケーションは正しい結果を返さないか、正常に機能しない場合があります。
なので=で文字列が一致しているかは判定している。
IsMatchについてはまた後日詳しく調べるとしよう。