導入
データの整合性を確保するために役立つビジネス アプリのデータ ストレージの一般的な要件は、標準化され、値の一覧をほとんど変更しないデータ列があることです。 データを入力するユーザーは、自由形式の値を入力するのではなく、一覧からオプションを選択します。 たとえば、これらのオプションには、国/地域の一覧、インシデントの優先順位、満足度評価が含まれます。
Microsoft Dataverse にはこの機能に合った列タイプとして、選択肢 列があります。 選択肢列により、データを入力するユーザーが一覧から値を選べるようになります。 既定ではユーザーは選択肢の中から 1 つを選ぶことができますが、1 つの既知の値の一覧から複数の値を許可するように列を簡単に構成することができます。 たとえば、基本カテゴリ を単一選択肢列、その他のカテゴリ を複数選択肢列に、かつ両方の列で同じカテゴリの一覧が使用されるよう構成することができます。
システム定義の値または選択肢列の値のカスタム リストを使用できます。 選択肢はテーブル列メタデータとして保存され、アプリ ユーザーではなくアプリ開発者によってのみ変更できます。 この機能には、値の一覧が使用されるアプリの構築中に、式でその選択肢一覧の名前を使用できるという利点があります。 たとえば、次の式は、選択肢列である カテゴリ 列に基づいて、ギャラリー品目のテキスト Color プロパティに色を設定します。
この式を作成すると、Power Apps が カテゴリ 列に使用できる値を理解できるようになり、列名の後に "." を挿入した直後にユーザーが選択肢列用の既知の値の一覧から比較する値を選択できるようになります。
注
選択肢一覧の値を追加または変更しても、新しい選択肢または変更された選択肢はエディターにすぐに表示されません。 テーブルの横の省略記号 (...) を選択してデータ パネルのテーブルを更新し、ポップアップ メニューから 更新 を選択します。 新しい値が表示されるまで繰り返します。
ローカルとグローバルの比較
使用可能な選択肢の値の一覧は、ローカル リストまたはグローバル リストとして作成できます。 ローカル選択 一覧の値は、その選択肢が作成された列およびテーブルによってのみ使用できます。 グローバル選択 オプションをオンにすると、その一覧を同じテーブル内または異なるテーブル内のいずれかにある複数の列に使用できます。 新しい 選択肢 列を作成するときの グローバル選択と同期しますか? オプションの既定値は はい になっています (推奨)。 グローバル選択オプションをオンにすると、他のテーブルでも同じ選択肢を使用できるようになります。 値がその 1 つのテーブルの中の 1 列にしか適用されないと確信できる場合を除き、グローバル選択を使用することをお勧めします。
はい を選択すると、この選択肢を同期する相手 が必須フィールドになり、その選択項目を選択する必要があります。 このフィールドを選択すると、[新しい列] ペインの横に、使用できるさまざまなオプションを示すペインが表示されます。 探している選択肢型を入力するか、一覧からスクロールして選択できます。 また、いずれかの選択肢セットの上にカーソルを置くと、既にその選択肢セットの一部である選択肢のプレビューが表示されます。
+ 新しい選択肢を選択し、作成する選択肢の情報を入力することで、新しい選択肢を作成することもできます。
列を作成するとき、既定の選択を割り当てることもできる点に注意してください。 後で戻って既定の選択を設定または変更できるので、心配はいりません。
選択肢のオプションをローカル選択セットのままにする場合は、グローバル選択と同期しますか? をいいえにします。 この場合、いいえボタンの直下で選択肢を定義します。 (少なくとも 1 つ必要です。) 必要なのは選択肢に ラベル を追加することのみです。Power Apps でその項目に整数値が自動的に割り当てられます。 この値は変更可能ですが、推奨しません。 また、ラベル 名の左側のボックスを選択することで、各選択肢の色を選択することもできます。 色の選択 ポップアップで、16 進数 または R-G-B 値の入力フィールドを使用して、色の値をハードコードできます。 または、カラー スライダー バーを調整し、スライダーの上のボックスを見ながらカラー スライダーを微調整することもできます。 選択した色は、モデル駆動型アプリでのみ使用できます。
さらに選択肢を追加するには、+ 新しい選択肢を選択して、プロセスを繰り返します。
ユーザーが複数の選択肢の選択を許可する必要がある場合、列の作成を完了する前に [複数の選択肢を選択できます] ボックスをオンにする必要があります。このオプションは、列を作成すると無効になります。
列の値の表示
選択肢のデータが Dataverse 行に格納されるときは、数値だけが格納され、テキストは保存されません。 複数選択肢の場合は、数値のコンマ区切りのリストが複数の選択内容を表すために格納されます。
ラベルなどのコントロールの値の表示方法は、選択肢の値が 1 つの場合と複数の場合で異なります。 選択フィールドを使用すると、ラベルの値を設定してリスト テキスト値を表示できます。 たとえば、顧客のカテゴリに対してカテゴリ選択肢フィールドを使用した場合は、次の式を使用して、そのフィールドをギャラリーのラベルに表示できます。
複数選択肢列の場合、レコードのプロパティのタイプは Table です。 これは、値列が設定された 1 つの列テーブルで、各行が選択した値を表します。 テキスト値のコンマ区切りのリストをユーザーが見やすいように表示するには、事前処理が必要です。 たとえば、優先配送列を使用して、ユーザーが配送を行う曜日を 1 つ以上選択できる場合は、次の式を使用してラベルの Text プロパティを設定します。
この式では、選択された値のリストが次のように表示されます。
選択肢とルックアップの比較
データ モデリングでの一般的な判断の 1 つは、選択肢列とルックアップ列の間、または複数選択肢と多対多リレーションシップの間で選択を行うことです。 正解も不正解もありません。 ただし、その判断が値のリストや適用できる式の管理方法に影響する可能性があります。 次の表にその違いをまとめています。
| 選択肢 | ルックアップまたは多対多のリレーションシップ |
|---|---|
| リストは作成者によって変更され、ユーザーは編集できない。 | リストはテーブル データのみであり、通常のセキュリティが適用される。 |
| データは整数またはコンマ区切りの数字のリスト (複数ある場合) として格納される。 | データはテーブル参照として格納される。 |
| 選択肢を無効にする方法も廃止にする方法も組み込まれていない。 | 行の非アクティブな状態をサポートし、アプリの式でフィルター処理することで選択を制限できる。 |
| 完全な ALM サポートを備えたソリューション コンポーネントとして扱われる。 | 参照データとして扱われる。 |
| あるのはラベル、値、色のみで、式で使用できるのはラベルのみである。 (例: フィルター処理や並べ替えを行うことができるのは表示ラベルでのみ。) | 式で使用できるルックアップ ターゲット テーブルに他のデータを追加できる。 (例: テーブルに追加された任意の列でフィルター処理や並べ替えを行うことができる。) |
| ローカライズが組み込まれている。 | ユーザー自身がローカライズを行う。 |
| 依存選択肢列の組み込みのサポートなし。 | データ モデルと依存列の実装が簡単。 (キャンバス アプリで依存のドロップダウン リストを作成するを参照。) |
テーブルを作成した後は列のデータ型を変更できないことに注意してください。 そのため、列を作成する前に、アプリ、自動化、またはレポートでデータがどのように使用されるのか検討します。
このモジュールの残りの部分では、Microsoft Power Apps からキャンバス アプリを構築する際に選択肢列を使用する方法について説明します。