Power Apps のキャンバスアプリで、カテゴリーの選択結果からサブカテゴリーを絞り込む方法を、お話していきたいと思います。
今回の方法では、カテゴリーを複数選択した場合、OR 条件でサブカテゴリーに表示されます!
単一選択の場合でも利用可能です🙆♀️(単一選択のケースしか存在しない場合、この記事よりももっと簡単な方法はあります)
フィルター条件として、カテゴリーを選択してから、サブカテゴリーを選択したい場合等にご利用いただける方法です!
1.用意した カテゴリー マスター
今回は、下の画像のような Excel テーブルでカテゴリーのマスターを用意しました。
もちろん、Excelテーブルではなく、Microsoft Dataverse や SharePoint リストでご用意いただいても大丈夫です👍
果物=カテゴリー、品種=サブカテゴリーといったイメージです。
2.キャンバスアプリの設定
手順1で作成した カテゴリーのマスターは、Power Apps に接続しておいてください!
(1)カテゴリー の選択項目
まずは、画面左側のカテゴリーの配置を行っていきます。
『くだもの(カテゴリー)』と記載されているラベルと、その下にカテゴリー一覧を出すためのリストボックスを配置します。
リストボックスの Items プロパティに、下記のように入力します。
Distinct 関数を利用して、カテゴリーの重複を排除します。
次に、リストボックスの OnChange プロパティに下記のように入力します。
カテゴリーの選択を変えたときに、サブカテゴリーに表示したい品種を、『gblSubCategory』というコレクションに収集するようにしています。
OnChange プロパティの内容としては、最初に Clear を実行して、 『glbSubCategory』の全レコードを削除します。次に、ForAll 関数によって、カテゴリーのリストボックスで選択されたレコード毎に、『glbSubCategory』に対して Collect を実行します。Collect する内容は、くだものマスターの果物列が、くだものリストで選択した値と一致するレコードを収集します。
簡単にいうと、選択された果物毎に、その果物名の品種がコレクションに追加されます。
(2)サブカテゴリーの選択項目
カテゴリー同様に、『品種(サブカテゴリー)』と入力されたラベルと、サブカテゴリーを表示するためのリストボックスを表示します。
リストボックスの Itmes プロパティには、(1)で作成した『glbSubCategory』を指定します。
3.実際の動作
「いちご」のみを選択した場合、いちごの品種のみが表示されます。
「りんご」と「ぶどう」の選択に変更した場合、りんごとぶどうの品種が表示されます。
このように、カテゴリーを OR 条件として、サブカテゴリーを表示できるようになりました!