在画布应用中创建依赖下拉列表

当您创建依赖(或级联)下拉列表时,用户在列表中选择一个选项以筛选另一个列表中的选项。 许多组织都会创建依赖列表来帮助用户更有效地填写表单。 例如,用户可以选择一个国家或地区来筛选城市列表,或者用户可以选择一个类别以仅显示该类别的代码。

最佳做法是,为“父级”和“子级”列表(例如,国家/地区和城市)中的值创建一个数据源,该数据源与用户使用应用更新的数据源分开。 如果采用这种方法,可以在多个应用中使用相同的父数据和子数据,并且可以更新该数据而无需重新发布使用这些数据的一个或多个应用。 您可以通过使用集合或静态数据来实现相同的结果,但不建议在企业场景中使用。

对于本主题中的场景,商店员工通过表单将问题提交到事件列表。 员工不仅指定发生事件的商店的位置,还指定该位置的部门。 并非所有位置都有相同的部门,因此位置列表可确保员工不能为没有某个部门的位置指定该部门。

备注

本文使用使用 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

默认情况下,列表包含一个您无法重命名或删除的标题列,它必须包含数据才能将项目保存在列表中。 若要配置列使其不需要数据,请执行以下操作:

  1. 在右上角附近,选择齿轮图标,然后选择列表设置
  2. 设置页上,选择列的列表中的标题
  3. 要求此列包含信息下,选择

更改之后,您可以忽略标题列,如果至少还有一列显示,也可以从默认视图中删除它

打开窗体

  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. 部门卡片中重复前两个步骤,将下拉列表控件重命名为 ddDepartment

配置位置

  1. ddlocationItems 属性设置为以下公式:

    Distinct(Locations, Location)

  2. (可选)按住 Alt 键,打开 ddLocation,确认列表显示了三个位置。

配置部门

  1. 选择 ddDepartment,然后在右侧窗格的属性选项卡上,选择依赖于。

  2. 父控件下,确保 ddLocation 出现在上面的列表中,结果出现在下面的列表中。

    备注

    如果您不希望匹配字符串,而是匹配数据行的实际 ID,请选择 ID 而不是结果

  3. 匹配字段下,在上面列表中选择位置,在下面列表中选择位置,然后选择应用

    依赖于链接。

    ddDepartmentItems 属性将设置为以下公式:

    Filter(Locations, Location = ddLocation.Selected.Result)

    此公式根据用户在 ddLocation 中进行的选择筛选 ddDepartment 中的项。 这样的配置可确保部门的“子”列表反映其“父”位置的数据,如 SharePoint 中的位置列表所指定的。

  4. 在右侧窗格的属性选项卡上,打开旁边的列表,然后选择部门

    此步骤将显示文本设置为 SharePoint 中位置列表部门列中的选项。

    部门值。

测试表单

按住 Alt 键,打开位置列表,选择一个位置,打开部门列表,选择一个部门。

位置和部门列表反映 SharePoint 中位置列表中的信息。

打开位置列表,将选择从“伦弗鲁”更改为“彭布罗克”,然后打开部门列表。

保存然后打开表单(可选)

  1. 打开文件菜单,然后选择保存 > 发布到 SharePoint > 发布到 SharePoint

  2. 在左上角,选择返回箭头,然后选择返回 SharePoint

  3. 在命令栏中,选择新建打开自定义表单。

常见问题

看不到任何数据:源都是空白的,有的包含的是错误数据。 请确认是否通过以下两种方式之一为控件显示了正确的字段:

  • 选择一个下拉列表,然后在右侧窗格的属性选项卡中选择 Value 属性。

    更改下拉列表。

  • 选择一个组合框,然后确保主要文本是您要显示的字段。

    更改组合框。

我的子下拉列表包含重复项。 此情况可能是由于在 SharePoint 中使用了 LookUp 列或在 Power Apps 中使用了 Choices 函数所致。 要删除重复项,请在正确返回的数据中整合 Distinct 函数。 详细信息:Distinct 函数

了解限制

此配置在下拉列表控件,以及允许一次选择一个的组合框列表框控件上可用。 如果这些控件允许多项选择,则不能对它们使用依赖于配置。 不建议将此方法用于处理 Microsoft Dataverse 中的选择项。

依赖于配置不支持静态数据或集合。 要使用这些源配置依赖下拉列表,请直接在公式栏中编辑表达式。 此外,在没有任何匹配数据表的情况下,Power Apps 不支持在 SharePoint 中使用双选择字段,而且您无法在此 UI 中定义匹配字段

备注

您能告诉我们您的文档语言首选项吗? 进行简短调查。(请注意,此调查是英文版调查)

此调查大约需要七分钟。 不会收集个人数据(隐私声明)。