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

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

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

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

注意

この記事では、Microsoft Lists をデータ ソースとして使用して作成されたリストを使用します。 ただし、すべての表形式のデータ ソースは同じように機能します。 Dataverse for Teams で、このシナリオでは、クラシックなドロップダウンを動作させるために、クラシックコントロール を有効にする必要があります。

データ ソースの作成

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

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

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

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

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

  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 つ選択できます。 依存構成は、複数の選択を許可する場合、これらのコントロールのいずれにも使用できません。 このアプローチは、Microsoft Dataverse で選択肢をもって作業するのには推奨されていません。

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

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。