「Power Appsで画像を撮影して投稿するアプリに、ドロップダウンを選択して投稿できるようにする」にて、ドロップダウンを選択して投稿できるようにした。
ドロップダウンの選択肢が数が少ないうちはまだいいけど、10を超えてきてドロップダウン一つだと面倒。100を超えてきたら目も当てられない。
というわけで、ドロップダウンを2つ作り、親カテゴリを選んだら、子カテゴリーがフィルターされるようにしてみたので、備忘録でまとめてみた。
#SharePointでマスタを作る
カテゴリー列に親。タイトル列にサブカテゴリーに相当するものを入れてみた。
#親になるドロップダウンに重複を削除して表示する設定(Distinct)
挿入→ドロップダウンから配置して、データソースに先ほど作成したカスタムリストと、列を指定。
しかし、このままでは親ドロップダウンは重複も全部表示されちゃう。
重複を削除したいので、処理を入れる。
データItemsの値 | Valueの値 | |
---|---|---|
before | categoryMaster | category |
after | Distinct(categoryMaster,category) | Result |
書式 | Distinct(ソース名,対象列) | 自動でResultにかわる |
#子になるドロップダウンに親ドロップダウンでフィルターする(Filter)
挿入→ドロップダウンから配置して、データソースに先ほど作成したカスタムリストと、列をそれぞれ指定。
しかし、このままでは子ドロップダウンもフィルターされてない。
フィルターしたいので、処理を入れる。
ドロップダウンの[依存先]を選択すると、親コントロールを聞いてくるので、親にするドロップダウンを選択。
親ドロップダウンで、やさいを選ぶと、ドロップダウンは絞られた。
できた!
#課題
だいぶアプリっぽくなってきた。関数は使ってるけど、コードは何も書いてない。
Flowに渡して、SharePointに書き込ませたい。しかし、Flowの引数にはそのままドロップダウンではできてなくて、いっかいラベルにして変数にしてた。しかし、Distinctかけたドロップダウンならラベル経由させなくても、[Dropdown1.Selected.Result]などで変数として使える。いい方法ありそう。