キャンバス アプリで依存のドロップダウン リストを作成する

依存 (またはカスケード) ドロップダウン リストを作成すると、ユーザーはリストのオプションを選択して、別のリストのオプションをフィルター処理します。 多くの組織では、ユーザーがフォームに効率よく記入できるように依存リストを作成しています。 たとえば、ユーザーは国または地域を選択して都市のリストをフィルター処理したり、カテゴリを選択してそのカテゴリのコードのみを表示したりできます。

ベスト プラクティスとして、ユーザーがアプリを使用して更新するデータ ソースとは別に、「親」リストと「子」リストの値 (国/地域、都市など) のデータ ソースを作成します。 このアプローチを採用すると、複数のアプリで同じ親データと子データを使用でき、それらを使用するアプリを再公開せずにそのデータを更新できます。 コレクションまたは静的データを使用して同じ結果を得ることができますが、企業向けのシナリオにはお勧めできません。

このトピックのシナリオでは、店舗の従業員がフォームを介して インシデント リストに問題を送信します。 従業員は、インシデントが発生した店舗の場所だけでなく、その場所の部署も指定します。 すべての場所に同じ部署があるわけではないため、場所 リストを使用すると、従業員はその部署のない場所には部署を指定できなくなります。

このトピックでは、データ ソースとして Microsoft SharePoint リストを使用していますが、すべての表形式のデータ ソースは同じように機能します。

データ ソースの作成

場所 リストには、各場所の部署が表示されます。

場所
イーガンビル ベーカリー
イーガンビル デリ
イーガンビル 生成
レンフルー ベーカリー
レンフルー デリ
レンフルー 生成
レンフルー 薬局
レンフルー フローラル
ペンブローク ベーカリー
ペンブローク デリ
ペンブローク 生成
ペンブローク フローラル

インシデント リストには、連絡先情報と各インシデントに関する情報が表示されます。 日付列を 日付 列として作成し、その他の列は 1 行テキスト 列として作成して構成を簡素化し、Microsoft Power Apps での委任の警告を回避します。

電話番号 場所 内容 Date
トーニャ コルテス (206) 555 - 1022 イーガンビル 生成 問題が発生しました … 2/12/2019
モーセ ラフラム (425) 555 - 1044 レンフルー フローラル 問題が発生しました … 2/13/2019

既定では、カスタム SharePoint リストには タイトル 列が含まれており、名前を変更したり削除したりすることはできません。リストにアイテムを保存するには、その列にデータが含まれている必要があります。 データを必要としないように列を構成するには:

  1. 右上の歯車アイコンを選択して、リストの設定 を選択します。
  2. 設定 ページで、列のリストにある タイトル を選択します。
  3. この列への情報の入力を必須にする で、いいえ を選択します。

その変更後、タイトル 列を無視するか、少なくとも 1 つの他の列が表示されている既定のビューからそれを削除できます。

フォームが開く

  1. インシデント リストを開き、Power Apps > フォームのカスタマイズ を選択します。

    インシデント リストを開き、Power Apps > フォームのカスタマイズを選択します。

    ブラウザーのタブが開き、既定のフォームが Power Apps Studio で開きます。

  2. (オプション) フィールド ウィンドウで、タイトル フィールドにカーソルを合わせ、表示される省略記号 (...) を選択してから、削除 を選択します。

    フィールド ウィンドウを閉じている場合は、左側のナビゲーション バーで SharePointForm1 を選択し、右側のウィンドウにある プロパティ タブで フィールドの編集 を選択します。

  3. (オプション) 前の手順を繰り返して、フォームから 添付ファイル フィールドを削除します。

    追加したフィールドのみがフォームに表示されます。

    タイトルと添付ファイル フィールドのないフォーム

コントロールを置き換える

  1. フィールド ウィンドウで、場所 の横にある矢印を選択します。

    フィールド ウィンドウを閉じている場合は、左側のナビゲーション バーで SharePointForm1 を選択し、右側のウィンドウにある プロパティ タブで フィールドの編集 を選択します。

  2. コントロールの種類 のリストを開き、許容値 を選択します。

    許容値

    入力メカニズムが ドロップ ダウン コントロールに変更されます。

  3. 部署 カードに対してこれらの手順を繰り返します。

場所リストを追加する

  1. ビュー > データ ソース > データ ソースを追加 を選択します。

  2. SharePoint 接続を選択または作成し、場所 リストを含むサイトを指定します。

  3. そのリストのチェック ボックスをオンにしてから、接続 を選択します。

    データ ウィンドウ

    接続リストには、フォームの基となる インシデント リストと、フォームの場所と部署を識別する 場所 リストが表示されます。

    SharePoint データ ソース

カードのロックを解除する

  1. 場所 カードを選択し、右側のウィンドウで 詳細設定 のタブを選択して、ロックを解除してプロパティを変更する を選択します。

  2. 部署 カードに対してこの手順を繰り返します。

コントロールの名前を変更する

コントロールの名前を変更すると、コントロールをより簡単に識別できるようになり、例に従うのが容易になります。 他のベスト プラクティスを見つけるには、コーディング標準とガイドラインのホワイトペーパーをレビューしてください。

  1. 場所 のカードで、ドロップ ダウン コントロールを選択します。

  2. 右側のウィンドウ上部で、ddLocation と入力するか貼り付けを行って、選択したコントロールの名前を変更します。

    コントロール名の変更

  3. 部署 カードで前の 2 つの手順を繰り返して、ドロップ ダウン コントロールの名前を ddDepartment に変更します。

場所の構成

  1. ddlocationItems プロパティを、この数式に設定します。

    Distinct(Locations, Location)

  2. (オプション) Alt キーを押しながら ddLocation を開き、リストに 3 つの場所が表示されていることを確認します。

部署の構成

  1. ddDepartment を選択して、右側のウィンドウの プロパティ タブで、依存 を選択します。

  2. 親コントロール で、ddLocation が上のリストに表示され、Result が下のリストに表示されることを確認してください。

    注意

    文字列ではなく、実際の ID で照合する場合は、Result ではなく、ID を選択します。

  3. 一致するフィールド で、上のリストにある 場所 と下のリストにある 場所 を選択し、適用 を選択します。

    リンクに依存

    ddDepartmentItems プロパティを次の数式に設定します。

    Filter(Locations, Location = ddLocation.Selected.Result)

    この式は、ユーザーが ddLocation で選択した内容に基づいて、ddDepartment の項目をフィルター処理します。 このような構成により、SharePoint の 場所 リストに指定されているように、部署の「子」リストが「親」の場所のデータを確実に反映します。

  4. 右側のウィンドウの プロパティ タブで、 の横にあるリストを開いてから、部署 を選択します。

    このステップでは、SharePoint の 場所 リストの 部署 列のオプションに、表示テキストを設定します。

    部署の値

フォームをテストする

Alt キーを押しながら、場所のリストを開いて 1 つ選択し、部署のリストを開いて 1 つ選択します。

場所と部署のリストは、SharePoint の 場所 リストの情報を反映しています。

場所のリストを開き、選択をレンフルーからペンブロークに変更してから、部署のリストを開く

フォームを開き保存する (オプション)

  1. ファイル メニューを開き、保存 > SharePoint に公開 > SharePoint に公開 を選択します。

  2. 左上隅で、戻る矢印を選択し、SharePoint に戻る を選択します。

  3. コマンド バーで 新規 を選択し、カスタマイズしたフォームを開きます。

よくあるご質問

データが表示されません。ソースがすべて空白であるか、データが間違っています。 次のいずれかの方法で、コントロールの正しいフィールドを表示しているかどうかを確認します。

  • ドロップダウン リストを選択し、右側のウィンドウの プロパティ タブで、Value プロパティを選択します。

    ドロップ ダウンを変更する

  • コンボ ボックスを選択し、プライマリ テキストが表示するフィールドであることを確認します。

    コンボ ボックスを変更する

子のドロップダウン リストに重複した項目が含まれています。 この症状は、SharePoint の ルックアップ 列、または Power Apps の Choices 関数を使用したことが原因です。 重複を削除するには、正しく返されるデータを Distinct 関数でラップします。 詳細については、Distinct 関数を参照してください。

既知の制限

この構成は、ドロップ ダウン コントロール、コンボ ボックス、および リスト ボックス コントロールで使用でき、一度に 1 つ選択できます。 依存 構成は、複数の選択を許可する場合、これらのコントロールのいずれにも使用できません。 この方法は、Common Data Service のオプション セットを使用して作業する場合にはお勧めしません。

依存 構成は静的データまたはコレクションをサポートしていません。 これらのソースを使用して依存ドロップダウン リストを構成するには、数式バーで直接式を編集します。 さらに Power Apps は、一致するデータのテーブルがない SharePoint では、2 つの選択フィールドの使用をサポートしていません。そしてこの UI 内で 一致するフィールド を定義することはできません。