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. 插入按钮控件。

  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 函数有选择地删除项。

准备示例数据

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

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

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

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

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

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

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

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

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

    库将显示此实体中的项:

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

  5. 从左窗格插入按钮控件:

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

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

    移动按钮

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

    重命名按钮

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

    Remove( Contacts, Gallery1.Selected )
    

    设置按钮控件的 OnSelect 属性

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

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

    预览应用

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

    选择记录

  11. 选择删除记录

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

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

  12. 关闭应用预览。

    提示

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

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

创建包含示例数据的集合

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

  1. 向屏幕添加按钮控件。

  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. 关闭应用预览。