Power Apps 中的 Remove 和 RemoveIf 函数

数据源删除记录

描述

Remove 函数

使用 Remove 函数从数据源中删除特定的一个或多个记录。

对于集合来说,整个记录必须匹配。 可以使用 All 参数删除某个记录的所有副本;否则只会删除记录的一个副本。

RemoveIf 函数

使用 RemoveIf 函数根据一个或一组条件删除一个或多个记录。 每个条件都可以是其结果为 truefalse 的任意公式,并且可以通过名称引用数据源的。 将会针对每个记录单独评估每个条件,如果所有条件的评估结果为 true,则会删除该记录。

RemoveRemoveIf 都以的形式返回修改的数据源。 只能在行为公式中使用这两个函数。

还可使用 Clear 函数删除集合中的所有记录。

代理

与数据源一起使用时,无法委派这些函数。 将仅检索数据源的第一部分,然后应用该函数。 结果并不能代表整个过程。 创作时可能会显示一条警告,以提醒您有此限制,并建议尽可能切换到可委派的替代项。 有关详细信息,请参阅委派概述

语法

Remove( DataSource, Record1 [, Record2, ... ] [, All ] )

  • DataSource – 必需。 数据源,其中包含要删除的一个或多个记录。
  • Record(s) – 必需。 要删除的一个或多个记录。
  • All – 可选。 在集合中,同一记录可能出现多次。 添加 All 参数即可删除记录的所有副本。

Remove( DataSource, Table [, All ] )

  • DataSource – 必需。 数据源,其中包含要删除的记录。
  • Table – 必需。 要删除的记录表。
  • All – 可选。 在集合中,同一记录可能出现多次。 添加 All 参数即可删除记录的所有副本。

RemoveIf( DataSource, Condition [, ... ] )

  • DataSource – 必需。 数据源,其中包含要删除的一个或多个记录。
  • Condition(s) – 必需。 一个公式,对于要删除的一个或多个记录,该公式的求值结果为 true。 可以在公式中使用 DataSource 中的列名。 如果指定多个 Conditions,则所有 Conditions 的求值结果都必须为 true,然后才能删除一个或多个记录。

示例 - 单个公式

在以下示例中,您将删除某个数据源中的一个或多个记录,该数据源名为 IceCream 且以下表中的数据开头:

创建包含示例记录的集合

若要使用此数据创建集合,请执行下列操作:

  1. 插入 Button 控件。

  2. 将按钮控件的 OnSelect 属性设置为以下公式:

    ClearCollect( IceCream,
                  { ID: 1, Flavor: "Chocolate",  Quantity: 100 },
                  { ID: 2, Flavor: "Vanilla",    Quantity: 200 },
                  { ID: 3, Flavor: "Strawberry", Quantity: 300 }
    )
    
  3. 按住 Alt 键,并选择此按钮:

使用公式从集合中删除示例记录

公式 描述 结果
Remove( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ) )
从数据源中删除 Chocolate 记录。

修改了 IceCream 数据源。
Remove( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ) First( Filter( IceCream, Flavor="Strawberry" ) ) )
从数据源中删除两个记录。

修改了 IceCream 数据源。
RemoveIf( IceCream, Quantity > 150 ) 删除其 Quantity 大于 150 的记录。

修改了 IceCream 数据源。
RemoveIf( IceCream, Quantity > 150, Left( Flavor, 1 ) = "S" ) 删除其 Quantity 大于 150 且 FlavorS 开头的记录。


修改了 IceCream 数据源。
RemoveIf( IceCream, true ) 从数据源中删除所有记录。

修改了 IceCream 数据源。

在此示例中,您将使用 控件列出表中的记录。 然后使用 Remove 函数有选择地删除项。

准备示例数据

本示例使用 示例应用和数据 提供的 Microsoft Dataverse 中的 联系人 实体。 当您 创建环境时,可以部署 示例应用和数据。 您也可以改用任何其他数据源。

在此示例中,您将使用库外部的 按钮 删除项。

  1. 使用“手机布局”创建一个新的空白画布应用

    使用“手机布局”的空白画布应用

  2. 从左侧窗格中选择 插入

  3. 选择 垂直库
    控件将添加到屏幕上。

    使用“插入工具”窗格添加垂直库控件

  4. 系统将提示您选择一个数据源,您可以从可用数据源中选择一个数据源。
    例如,选择 联系人 实体以使用 示例数据

    选择要显示在库中的“联系人”实体

    库将显示此实体中的项:

    添加的显示“联系人”实体的库

  5. 从左窗格插入 Button 控件:

    使用“插入工具”窗格添加按钮控件

  6. 将所添加的按钮移到库项下面:

    移动按钮

  7. 更新按钮文本属性以 删除记录。 您还可以使用您选择的文本:

    重命名按钮

  8. 将此按钮控件的 OnSelect 属性设置为以下公式:

    Remove( Contacts, Gallery1.Selected )
    

    设置按钮控件的 OnSelect 属性

    库控件使用 Selected 属性使当前选择的记录可用。 Remove 函数引用此选定记录以将其删除。

  9. 使用右上角的 播放 按钮或按键盘上的 F5 预览应用:

    预览应用

  10. 选择要删除的记录,例如本例中的 Nancy 的记录:

    选择记录

  11. 选择 删除记录

    联系人库,现在没有已删除的 Nancy 记录

    选择此按钮将删除所选记录(在本示例中为 Nancy 的记录)。

  12. 关闭应用预览。

    提示

    您还可以结合使用替代行为与 Alt 键,而不是通过 播放 按钮或 F5 使用应用预览。

在此示例中,您将使用放置在库中的 图标 删除项。

创建包含示例数据的集合

如果您已准备好示例数据,请跳过此步骤,移至库内的垃圾桶图标

  1. 向屏幕添加 Button 控件。

  2. OnSelect 属性设置为以下公式:

    ClearCollect( SampleContacts, 
          { 'Full Name': "Yvonne McKay (sample)",      'Primary Email': "someone_a@example.com" },
          { 'Full Name': "Susanna Stubberod (sample)", 'Primary Email': "someone_b@example.com" },
          { 'Full Name': "Nancy Anderson (sample)",    'Primary Email': "someone_c@example.com" },
          { 'Full Name': "Maria Campbell (sample)",    'Primary Email': "someone_d@example.com" },
          { 'Full Name': "Robert Lyon (sample)",       'Primary Email': "someone_e@example.com" },
          { 'Full Name': "Paul Cannon (sample)",       'Primary Email': "someone_f@example.com" },
          { 'Full Name': "Rene Valdes (sample)",       'Primary Email': "someone_g@example.com" } 
    )
    
  3. 按住 Alt 键,并选择此按钮。

您可以在以下示例中使用的示例集合已创建。

  1. 使用“手机布局”创建一个新的空白画布应用

    使用“手机布局”的空白画布应用

  2. 从左侧窗格中选择 插入

  3. 选择 垂直库
    控件将添加到屏幕上。

    使用“插入工具”窗格添加垂直库控件

  4. 系统将提示您选择一个数据源,您可以从可用数据源中选择一个数据源。
    例如,选择 联系人 实体以使用 示例数据

    选择要显示在库中的“联系人”实体

    如果已创建集合,请选择您的集合:

    示例联系人集合

  5. 选择库中顶部项内的控件。

    为确保下一步将项插入库的模板中而不是库外,请确保在进行下一步之前先执行此步骤。

    选择库中的顶部记录

  6. 从左侧窗格中选择 添加图标

    使用“插入工具”窗格添加图标控件

    备注

    添加图标 将在库左侧插入一个 + 图标,库中的每个项都将重复插入。

  7. 在顶部项中,将图标移到屏幕右侧。

    移动图标

  8. 选择图标的 Icon 属性并将其设置为以下公式,以将图标图像更新为垃圾桶图标:

    Icon.Trash
    

    备注

    Icon. 前缀仅在您主动编辑公式时显示。

    将图标更改为垃圾桶图标

  9. OnSelect 属性设置为以下公式:

    Remove( [@Contacts], ThisItem )
    

    备注

    在此示例中,必须对使用 联系人 实体的示例数据使用 全局消除歧义运算符 [@...],以避免与 一对多 关系冲突。 如果您使用诸如 SharePoint 列表或 SQL Server 表之类的数据源,则不需要使用 全局消除歧义运算符

    垃圾桶图标的 OnSelect

  10. 使用右上角的 播放 按钮或按键盘上的 F5 预览应用。

  11. 选择记录旁边的垃圾桶图标,例如,Maria 的记录:

    其中一个联系人已删除的库

    记录已删除:

    删除的记录

  12. 关闭应用预览。

备注

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

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