在画布应用中创建依赖下拉列表
当您创建依赖(或级联)下拉列表时,用户在列表中选择一个选项以筛选另一个列表中的选项。 许多组织都会创建依赖列表来帮助用户更有效地填写表单。 例如,用户可以选择一个国家或地区来筛选城市列表,或者用户可以选择一个类别以仅显示该类别的代码。
最佳做法是,为“父级”和“子级”列表(例如,国家/地区和城市)中的值创建一个数据源,该数据源与用户使用应用更新的数据源分开。 如果采用这种方法,可以在多个应用中使用相同的父数据和子数据,并且可以更新该数据而无需重新发布使用这些数据的一个或多个应用。 您可以通过使用集合或静态数据来实现相同的结果,但不建议在企业场景中使用。
对于本主题中的场景,商店员工通过表单将问题提交到事件列表。 员工不仅指定发生事件的商店的位置,还指定该位置的部门。 并非所有位置都有相同的部门,因此位置列表可确保员工不能为没有某个部门的位置指定该部门。
备注
本文使用使用 Microsoft Lists 创建的列表作为数据源。 但是,所有表格数据源的工作方式都相同。 在 Dataverse for Teams 中,您需要启用经典控件以获取适用于此场景的经典下拉列表。
创建数据源
位置列表显示每个位置的部门。
Location | 部门 |
---|---|
伊根维尔 | 烘焙 |
伊根维尔 | 熟食 |
伊根维尔 | 农产品 |
伦弗鲁 | 烘焙 |
伦弗鲁 | 熟食 |
伦弗鲁 | 农产品 |
伦弗鲁 | 药房 |
伦弗鲁 | 鲜花 |
彭布罗克 | 烘焙 |
彭布罗克 | 熟食 |
彭布罗克 | 农产品 |
彭布罗克 | 鲜花 |
事件列表显示联系信息和有关每个事件的信息。 将“日期”列创建为 Date 列,但将其他列创建为单行文本列以简化配置并避免 Microsoft Power Apps 中出现委派警告。
名 | 姓 | 电话号码 | Location | 部门 | 描述 | Date |
---|---|---|---|---|---|---|
Tonya | Cortez | (206) 555 - 1022 | 伊根维尔 | 农产品 | 我遇到了一个问题… | 2/12/2019 |
Moses | Laflamme | (425) 555 - 1044 | 伦弗鲁 | 鲜花 | 我碰到了一个问题... | 2/13/2019 |
默认情况下,列表包含一个您无法重命名或删除的标题列,它必须包含数据才能将项目保存在列表中。 若要配置列使其不需要数据,请执行以下操作:
- 在右上角附近,选择齿轮图标,然后选择列表设置。
- 在设置页上,选择列的列表中的标题。
- 在要求此列包含信息下,选择否。
更改之后,您可以忽略标题列,如果至少还有一列显示,也可以从默认视图中删除它。
打开窗体
打开事件列表,然后选择集成 -> Power Apps -> 自定义窗体。
一个浏览器标签页将打开,并显示 Power Apps Studio 中的默认表单。
(可选)在字段窗格中,将鼠标悬停在标题字段上,选择出现的省略号 (...),然后选择删除。
如果您已关闭字段窗格,则可以通过在左侧导航栏中选择 SharePointForm1,然后在右侧窗格中的属性选项卡上选择编辑字段来再次打开它。
(可选)重复上一步,从表单中删除附件字段。
表单将仅显示您添加的字段。
替换控件
在字段窗格中,选择位置旁边的箭头。
如果您已关闭字段窗格,则可以通过在左侧导航栏中选择 SharePointForm1,然后在右侧窗格中的属性选项卡上选择编辑字段来再次打开它。
打开控件类型列表,然后选择允许值。
输入机制将更改为下拉列表控件。
对部门卡片重复这些步骤。
添加位置列表
选择视图 > 数据源 > 添加数据源。
选择或创建一个 SharePoint 连接,然后指定包含位置列表的站点。
选择该列表的复选框,然后选择连接。
连接列表显示该表单所基于的事件列表,和将在表单中标识位置和部门的位置列表。
解锁卡片
选择位置卡片,在右侧窗格中选择高级选项卡,然后选择解锁以更改属性。
对部门卡片重复前一个步骤。
重命名控件
如果重命名控件,您可以更轻松地识别它们,而且这些示例更容易参照。 若要了解其他最佳实践,请查看“编码标准和指南”白皮书 。
在位置卡片中,选择下拉列表控件。
在右侧窗格顶部附近,通过键入或粘贴 ddLocation 重命名所选控件。
在部门卡片中重复前两个步骤,将下拉列表控件重命名为 ddDepartment。
配置位置
将 ddlocation 的 Items 属性设置为以下公式:
Distinct(Locations, Location)
(可选)按住 Alt 键,打开 ddLocation,确认列表显示了三个位置。
配置部门
选择 ddDepartment,然后在右侧窗格的属性选项卡上,选择依赖于。
在父控件下,确保 ddLocation 出现在上面的列表中,结果出现在下面的列表中。
备注
如果您不希望匹配字符串,而是匹配数据行的实际 ID,请选择 ID 而不是结果。
在匹配字段下,在上面列表中选择位置,在下面列表中选择位置,然后选择应用。
ddDepartment 的 Items 属性将设置为以下公式:
Filter(Locations, Location = ddLocation.Selected.Result)
此公式根据用户在 ddLocation 中进行的选择筛选 ddDepartment 中的项。 这样的配置可确保部门的“子”列表反映其“父”位置的数据,如 SharePoint 中的位置列表所指定的。
在右侧窗格的属性选项卡上,打开值旁边的列表,然后选择部门。
此步骤将显示文本设置为 SharePoint 中位置列表部门列中的选项。
测试表单
按住 Alt 键,打开位置列表,选择一个位置,打开部门列表,选择一个部门。
位置和部门列表反映 SharePoint 中位置列表中的信息。
保存然后打开表单(可选)
打开文件菜单,然后选择保存 > 发布到 SharePoint > 发布到 SharePoint。
在左上角,选择返回箭头,然后选择返回 SharePoint。
在命令栏中,选择新建打开自定义表单。
常见问题
看不到任何数据:源都是空白的,有的包含的是错误数据。 请确认是否通过以下两种方式之一为控件显示了正确的字段:
选择一个下拉列表,然后在右侧窗格的属性选项卡中选择 Value 属性。
选择一个组合框,然后确保主要文本是您要显示的字段。
我的子下拉列表包含重复项。 此情况可能是由于在 SharePoint 中使用了 LookUp 列或在 Power Apps 中使用了 Choices 函数所致。 要删除重复项,请在正确返回的数据中整合 Distinct 函数。 详细信息:Distinct 函数。
了解限制
此配置在下拉列表控件,以及允许一次选择一个的组合框和列表框控件上可用。 如果这些控件允许多项选择,则不能对它们使用依赖于配置。 不建议将此方法用于处理 Microsoft Dataverse 中的选择项。
依赖于配置不支持静态数据或集合。 要使用这些源配置依赖下拉列表,请直接在公式栏中编辑表达式。 此外,在没有任何匹配数据表的情况下,Power Apps 不支持在 SharePoint 中使用双选择字段,而且您无法在此 UI 中定义匹配字段。