简介
帮助确保数据一致性的商业应用程序数据存储的一个常见要求是具有数据列,数据列中包含标准化的不定期更改的值列表。 输入数据的用户将从列表中选择一个选项,而不是键入自由形式的值。 这些选项的示例包括国家/地区列表、事件优先级、满意度评级等。
Microsoft Dataverse 有一种支持此功能的列类型,即选项列。 选项列允许用户输入数据以从列表中选择值。 默认情况下,用户可以进行单选,但可以很容易地将列配置为允许来自单个已知值列表的多个值。 例如,主要类别可以是一个单选列,其他类别可以是一个多选列,两者都可以使用相同的类别列表。
您可以使用系统定义的值,也可以针对选项列使用自定义值列表。 选项存储为表列元数据,并且只能由应用制作者修改,而不能由应用用户修改。 当您生成一个使用值列表的应用时,此功能很有帮助,因为您的公式可以引用选项列表名称和值的显示名称。 例如,以下公式基于 Category 列(即选项列)对库项的文本 Color 属性设置颜色。
在撰写该公式时,只要您在列名称后插入“.”,Power Apps 就会了解 Category 列的可能值,并允许您从选项列的已知值列表中选择要比较的值。
注意
如果在选项列表中添加或更改值,新的或更改的选项不会立即显示在编辑器中。 通过选择表旁边的省略号 (...),并从弹出菜单中选择刷新来刷新数据面板上的表。 重复上述步骤,直到显示新值为止。
本地与全局
您可以将可用选项值的列表创建为本地或全局列表。 本地选项列表值只能在创建它们的列或表中使用。 全局选择选项允许在同一个表或多个不同表的多个列中使用列表。 当您创建新的选项列时,是否与全局选择同步? 选项的默认值为是(推荐)。 全局选择选项允许在其他表中使用相同的选项。 除非您确信这些值仅适用于该单个表中的单个列,否则您需要使用全局选择值。
选择是后,请注意将此选项与以下对象同步将成为必填字段,您必须为这些选项做出选择。 选择此字段时,一个显示各种可用选项的窗格将出现在“新建列”窗格的旁边。 您可以键入要查找的选项类型,也可以滚动浏览列表以选择一种类型。 另请注意,当您将鼠标悬停在任意选项集上时,可以预览已经属于该选项集的选项。
另外,也可以通过以下方法创建新选项集:选择 + 新建选项,然后输入有关选项的信息。
请注意,您还可以在创建列时为其分配默认选项。 无需担心,您可以稍后返回并设置或更改默认选项。
如果确定要将选择选项保留为本地选项集,可在是否与全局选择同步? 下选择否。 在这种情况下,您可以在否按钮下方定义您的选项。 (至少需要一个选项。)您只需要为该选项添加一个标签;Power Apps 会自动为该项目分配一个整数值。 您可以更改值,但不建议这样做。 您还可以通过选择标签名称左侧的框来为每个选项选择一种颜色。 在选择颜色弹出窗口中,您可以通过十六进制或 R-G-B 值的输入字段对颜色值进行硬编码。 或者,您可以调整颜色滑块条并通过查看滑块上方的框对颜色滑块进行微调。 您选择的颜色仅在模型驱动应用中可用。
您可以通过选择 + 新建选项按钮并重复该流程来添加更多选项。
如果需要允许用户选择多个选项,则必须在完成列创建之前选中“允许选择多个选项”框,因为此选项将在创建列后禁用。
显示列值
当所选数据存储在 Dataverse 行中时,将仅存储数字值,而不存储文本。 对于多选项,存储以逗号分隔的数值列表以表示存在多个选择。
对于单选值和多选值,值在控件(如标签)中的显示方式不同。 可以使用选择字段设置标签的值以显示列表文本值。 例如,如果您有用于客户类别的类别选项字段,则可以使用以下公式在库的标签中显示此字段。
对于多选列,记录上的属性为“表”类型。 这是一个具有值列的单列表,每行都表示一个选定的值。 若要显示用户友好的、逗号分隔的文本值列表,需要进行一些预处理。 例如,如果您有一个首选交货日期列,允许用户选择一个或多个工作日交货,则您将使用以下公式在标签上设置 Text 属性。
本公式将导致屏幕上显示以下所选值的列表。
选项与查找
一个常见的数据建模决策是在选项列和查找列之间,或在多项选择和多对多关系之间做出选择。 答案无正确或错误之分。 但是,您的决定会影响您管理值列表的方式以及您可以应用的公式。 考虑下表中总结的差异。
| 选项 | 查找或多对多关系 |
|---|---|
| 列表由制作者修改,没有用户编辑。 | 列表是表数据,适用常规安全性。 |
| 数据以整数或逗号分隔的数字列表(有多个数字时)形式存储。 | 数据以表引用的形式存储。 |
| 没有内置的方式停用或弃用选择。 | 支持行上的停用状态,并且可以通过应用中的公式进行筛选以限制选择。 |
| 视为具有完整 ALM 支持的解决方案组件进行处理。 | 视为引用数据进行处理。 |
| 只有标签、值和颜色,并且只有标签在公式中可用。 (例如,只可以根据显示标签进行筛选和排序。) | 可以将其他数据添加到可在公式中使用的查找目标表。 (例如,对添加到表中的任何列进行筛选和排序。) |
| 内置本地化。 | 自行处理本地化。 |
| 没有对依赖项选项列的内置支持。 | 更方便创建数据模型并实现依赖项列。 (请参阅在画布应用中创建依赖项下拉列表。) |
请记住,创建列后,不能更改数据类型。 因此,在创建列之前,请考虑应用、自动化或报告将如何使用数据。
本模块的其余部分将探究从 Microsoft Power Apps 生成画布应用时如何使用选项列。