導入

完了

ビジネス アプリのデータ ストレージの一般的な要件は、標準化され、頻繁に値の一覧を変更してデータの整合性を確保するためのデータ列があることです。 データを入力するユーザーは、自由形式の値を入力するのではなく、リストからオプションを選択します。 たとえば、これらのオプションには、国/地域のリスト、インシデントの優先順位、満足度評価が含まれます。

Microsoft Dataverse にはこのコンセプトに合った列タイプとして、選択肢列があります。 選択肢列により、ユーザーがリストから値を選べるようになります。 既定ではユーザーは選択肢の中から 1 つを選ぶことができますが、1 つの既知の値のリストから複数の値を許可するように列を簡単に構成することができます。 たとえば、基本カテゴリを単一選択の列、その他のカテゴリを複数選択可能な列に、かつ両方の列で同じカテゴリのリストが使用されるよう構成することができます。

システムまたはカスタマイザーは、選択肢列用の値のリストを定義し、その値をテーブル列メタデータとして格納します。 それはアプリケーション データとは異なり、アプリのユーザーではなく、アプリ開発者だけが変更できます。 この機能の利点は、値のリストが使用されるアプリの構築中に、式でその選択肢リストの名前を使用できることです。 式では、値の表示名を使用することもできます。 たとえば、次の式は、選択肢列であるカテゴリ列に基づいて、品目の入力プロパティに色を設定します。

次の Power Fx の式のスクリーンショット: Switch( ThisItem.Category, 'Category (Accounts)'.'Preferred Customer', Green, 'Category (Accounts)'.'Standard', Black. )

この式を作成すると、Power Apps がカテゴリ列に使用できる値を理解できるようになり、ユーザーが選択肢列用の既知の値のリストから比較する値を選択できるようになります。

注意

選択肢リストの値を追加または変更したにもかかわらず、変更した項目がまだエディターに表示されない場合は、テーブルの横の省略記号 (...) を選択し、ポップアップ メニューから最新の情報に更新を選択することで、データ パネルのテーブルを最新の情報に更新してください。

Dataverse テーブルのポップアップ メニューの [最新の情報に更新] メニュー項目のスクリーンショット。テーブルの横にある省略記号を選択すると、メニューが呼び出されます。

ローカルとグローバルの比較

使用可能な選択肢の値のリストは、ローカル リストまたはグローバル リストとして作成できます。 ローカル選択リストの値は定義されている列に対してのみ使用され、かつそのテーブル内でのみ使用できます。 グローバル選択オプションをオンにすると、そのリストを同じテーブル内または異なるテーブル内の複数の列に使用できます。 新しい選択肢列を作成するときのグローバル選択と同期しますか? オプションの既定値ははいになっています (推奨)。 グローバル選択オプションをオンにすると、他のテーブルでも同じ選択肢を使用できるようになります。 値がその 1 つのテーブルの中の 1 列にしか適用されないと確信できる場合を除き、グローバル選択を使用することをお勧めします。

[グローバル選択] および [ローカル選択] オプションが強調表示された、開発者用インターフェイスでの選択肢列プロパティのスクリーンショット。

はいを選択すると、この選択肢を同期する相手が必須フィールドになり、その選択項目を選択する必要があります。 このフィールドを選択すると、[新しい列] ウィンドウの横に、使用できるさまざまなオプションを示すウィンドウが表示されます。 探している選択肢型を入力するか、一覧からスクロールして選択できます。 また、いずれかの選択肢セットの上にカーソルを置くと、既にその選択肢セットの一部である選択肢のプレビューが表示されます。

この選択肢を同期する相手の入力フィールドと、カーソルを置くことで選択肢の値を表示したポップアップ ウィンドウのスクリーンショット。

+ 新しい選択肢を選択し、作成する選択肢の情報を入力することで、新しい選択肢を作成することもできます。

列を作成するとき、既定の選択を割り当てることもできる点に注意してください。 後で戻って既定の選択を設定または変更できるので、心配はいりません。

選択肢のオプションをローカル選択セットのままにする場合は、グローバル選択と同期しますか?いいえにします。 この場合、いいえボタンの直下で選択肢を定義します。 (少なくとも 1 つ必要です。) 必要なのは選択肢にラベルを追加することのみです。Power Apps でその項目に整数値が自動的に割り当てられます。これは適宜変更することができます。 また、入力したラベル名の左側のボックスを選択することで、各選択肢の色を選択することもできます。 色の選択ポップアップで、16 進数または R-G-B 値の入力フィールドを使用して、色の値をハードコードできます。 または、カラー スライダー バーを調整し、スライダーの上のボックスを使用してカラー スライダーの中身を微調整することもできます。 この色は、モデル駆動型アプリでのみ参照されます。

選択肢フィールドのラベルおよび値のプロパティに入力された値を示すスクリーンショット。また、色入力オプションが強調表示された色オプション フィールドも示しています。

さらに選択肢を追加するには、+ 新しい選択肢を選択して、プロセスを繰り返します。

ユーザーが複数の選択肢の選択を許可する必要がある場合、列の作成を完了する前に [複数の選択肢を選択できます] ボックスをオンにする必要があります。このオプションは、列を作成すると無効になります。

列の値の表示

選択肢のデータが Dataverse 行に格納されるときは、数値だけが格納され、テキストは保存されません。 複数選択肢の場合は、数値のコンマ区切りのリストが複数の選択内容を表すために格納されます。

ラベルなどのコントロールの値の表示方法は、選択肢の値が 1 つの場合と複数の場合で異なります。 選択フィールドを使用すると、ラベルの値を設定してリスト テキスト値を表示できます。 たとえば、顧客のカテゴリに対してカテゴリ選択肢フィールドを使用した場合は、次の式を使用して、そのフィールドをギャラリーのラベルに表示できます。

Power Fx の式 ThisItem.Category のスクリーンショット。

複数選択肢列の場合、レコードのプロパティのタイプは Table です。 これは、値列が設定された 1 つの列テーブルで、各行が選択した値を表します。 テキスト値のコンマ区切りのリストをユーザーが見やすいように表示するには、事前処理が必要です。 たとえば、優先配送列を使用して、ユーザーが配送を行う曜日を 1 つ以上選択できる場合は、次の式を使用してラベルの Text プロパティを設定します。

Power Fx の式 Concat(ThisItem.'Preferred Delivery',Text(Value),

この式では、選択された値のリストが次のように表示されます。

Power Fx の式の出力として、優先配送に月曜日と火曜日を表示するスクリーンショット。

選択肢とルックアップの比較

データ モデリングでの一般的な判断の 1 つは、選択肢列とルックアップ列の間、または複数選択肢と多対多リレーションシップの間で選択を行うことです。 正解も不正解もありません。 ただし、その判断が値のリストや適用できる式の管理方法に影響する可能性があります。 次の表にその違いをまとめています。

選択肢 ルックアップまたは多対多のリレーションシップ
リストは作成者によって変更され、ユーザーは編集できない。 リストはテーブル データのみであり、通常のセキュリティが適用される。
データは整数またはコンマ区切りの数字 (複数ある場合) として格納される。 データはテーブル参照として格納される。
選択肢を無効にする方法も廃止にする方法も組み込まれていない。 行の非アクティブな状態をサポートし、アプリの式でフィルター処理することで選択を制限できる。
完全な ALM サポートを備えたソリューション コンポーネントとして扱われる。 参照データとして扱われる。
あるのはラベル、値、色のみで、式で使用できるのはラベルのみである。 (例: 表示ラベルでのみフィルター処理や並べ替えを行うことができる。) 式で使用できるルックアップ ターゲット テーブルに他のデータを追加できる。 (例: テーブルに追加された任意の列でフィルター処理や並べ替えを行うことができる。)
ローカライズが組み込まれている。 ユーザー自身がローカライズを行う。
依存選択肢列の組み込みのサポートなし。 データ モデルと依存列の実装が簡単。 (キャンバス アプリで依存のドロップダウン リストを作成するを参照。)

列を作成した後は、データ型を変更できないことを思い出してください。したがって、列を作成する前に、アプリ、自動化、またはレポートでデータがどのように使用されるのかを検討します。

このモジュールの残りの部分では、Microsoft Power Apps からキャンバス アプリを構築する際に選択肢列を使用する方法について説明します。