Power Apps 中的 Remove 和 RemoveIf 函数
描述
Remove 函数
使用 Remove 函数从数据源中删除特定的一个或多个记录。
对于集合来说,整个记录必须匹配。 可以使用 All 参数删除某个记录的所有副本;否则只会删除记录的一个副本。
RemoveIf 函数
使用 RemoveIf 函数根据一个或一组条件删除一个或多个记录。 每个条件都可以是其结果为 true 或 false 的任意公式,并且可以通过名称引用数据源的列。 将会针对每个记录单独评估每个条件,如果所有条件的评估结果为 true,则会删除该记录。
Remove 和 RemoveIf 都以表的形式返回修改的数据源。 只能在行为公式中使用这两个函数。
还可使用 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 且以下表中的数据开头:
创建包含示例记录的集合
若要使用此数据创建集合,请执行下列操作:
插入 Button 控件。
将 Button 控件的 OnSelect 属性设置为以下公式:
ClearCollect( IceCream, { ID: 1, Flavor: "Chocolate", Quantity: 100 }, { ID: 2, Flavor: "Vanilla", Quantity: 200 }, { ID: 3, Flavor: "Strawberry", Quantity: 300 } )
按住 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 且 Flavor 以 S 开头的记录。 | ![]() 修改了 IceCream 数据源。 |
RemoveIf( IceCream, true ) | 从数据源中删除所有记录。 | ![]() 修改了 IceCream 数据源。 |
示例 - 库外部的删除按钮
在此示例中,您将使用 Gallery 控件 列出表中的记录。 然后使用 Remove 函数有选择地删除项。
准备示例数据
此示例使用 Microsoft Dataverse 中随 示例应用和数据 提供的 联系人 表。 当您 创建环境时,可以部署 示例应用和数据。 您也可以改用任何其他数据源。
库外部的删除按钮
在此示例中,您将使用库外部的 按钮 删除项。
使用“手机布局”创建一个新的空白画布应用。
从左侧窗格中选择 插入。
选择 垂直库。
Gallery 控件将添加到屏幕上。系统将提示您选择一个数据源,您可以从可用数据源中选择一个数据源。
例如,选择 联系人 表来使用 示例数据:库显示此表中的项目:
从左窗格插入 Button 控件:
将所添加的按钮移到库项下面:
更新按钮文本属性以 删除记录。 您还可以使用您选择的文本:
将此 Button 控件的 OnSelect 属性设置为以下公式:
Remove( Contacts, Gallery1.Selected )
Gallery 控件使用 Selected 属性使当前选择的记录可用。 Remove 函数引用此选定记录以将其删除。
使用右上角的 播放 按钮或按键盘上的 F5 预览应用:
选择要删除的记录,例如本例中的 Nancy 的记录:
选择 删除记录:
选择此按钮将删除所选记录(在本示例中为 Nancy 的记录)。
关闭应用预览。
提示
您还可以结合使用替代行为与 Alt 键,而不是通过 播放 按钮或 F5 使用应用预览。
示例 - 库内的垃圾桶图标
在此示例中,您将使用放置在库中的 图标 删除项。
创建包含示例数据的集合
如果您已准备好示例数据,请跳过此步骤,移至库内的垃圾桶图标。
向屏幕添加 Button 控件。
将 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" } )
按住 Alt 键,并选择此按钮。
您可以在以下示例中使用的示例集合已创建。
库内的垃圾桶图标
使用“手机布局”创建一个新的空白画布应用。
从左侧窗格中选择 插入。
选择 垂直库。
Gallery 控件将添加到屏幕上。系统将提示您选择一个数据源,您可以从可用数据源中选择一个数据源。
例如,选择 联系人 表来使用 示例数据:如果已创建集合,请选择您的集合:
选择库中顶部项内的控件。
为确保下一步将项插入库的模板中而不是库外,请确保在进行下一步之前先执行此步骤。
从左侧窗格中选择 添加图标。
备注
添加图标 将在库左侧插入一个 + 图标,库中的每个项都将重复插入。
在顶部项中,将图标移到屏幕右侧。
选择图标的 Icon 属性并将其设置为以下公式,以将图标图像更新为垃圾桶图标:
Icon.Trash
备注
Icon. 前缀仅在您主动编辑公式时显示。
将 OnSelect 属性设置为以下公式:
Remove( [@Contacts], ThisItem )
备注
您必须将此示例中的 全局消除歧义运算符 [@...] 与使用 联系人 表的示例数据一起使用,以避免与 一对多 关系冲突。 如果您使用诸如列表或 SQL Server 表之类的数据源,则不需要使用 全局消除歧义运算符。
使用右上角的 播放 按钮或按键盘上的 F5 预览应用。
选择记录旁边的垃圾桶图标,例如,Maria 的记录:
记录已删除:
关闭应用预览。
反馈
提交和查看相关反馈