Power Apps 中的 Remove 和 RemoveIf 函数

数据源删除记录

描述

Remove 函数

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

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

RemoveIf 函数

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

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

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

代理

[!INCLUDE [delegation-no]../../includes/delegation-no.md)]

语法

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 且以下表中的数据开头:

IceCream 示例。

创建包含示例记录的集合

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

  1. 插入 Button 控件。

  2. 将 Button 控件的 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 记录。 包含 Vanilla 和 Strawberry 的结果。

修改了 IceCream 数据源。
Remove( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ) First( Filter( IceCream, Flavor="Strawberry" ) ) )
从数据源中删除两个记录。 仅包含 Vanilla 的结果。

修改了 IceCream 数据源。
RemoveIf( IceCream, Quantity > 150 ) 删除其 Quantity 大于 150 的记录。 仅包含 Chocolate 的结果。

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


修改了 IceCream 数据源。
RemoveIf( IceCream, true ) 从数据源中删除所有记录。 不包含 IceCream 的结果。

修改了 IceCream 数据源。

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

准备示例数据

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

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

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

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

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

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

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

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

    选择要在库中显示的联系人表。

    库显示此表中的项目:

    添加的库显示联系人表。

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

    使用“插入工具”窗格添加 Button 控件。

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

    移动按钮。

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

    重命名按钮。

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

    Remove( Contacts, Gallery1.Selected )
    

    设置 Button 控件的 OnSelect 属性。

    Gallery 控件使用 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. 选择 垂直库
    Gallery 控件将添加到屏幕上。

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

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

    选择要在库中显示的联系人表。

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

    示例联系人集合。

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

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

    选择库中的顶部记录。

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

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

    备注

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

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

    移动图标。

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

    Icon.Trash
    

    备注

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

    将图标更改为垃圾桶图标。

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

    Remove( [@Contacts], ThisItem )
    

    备注

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

    垃圾桶图标的 OnSelect。

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

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

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

    记录已删除:

    删除的记录。

  12. 关闭应用预览。

备注

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

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