Power Apps 中的 Update 和 UpdateIf 函数

更新数据源中的记录

描述

Update 函数

使用 Update 函数可替换数据源中的整个记录, 而使用 UpdateIfPatch 函数则可修改记录中的一个或多个值,对其他值不作处理。

对于集合来说,整个记录必须匹配。 集合允许重复记录,因此可能会匹配多个记录。 可以使用 All 参数更新某个记录的所有副本;否则只会更新记录的一个副本。

如果数据源自动生成列的值,则该的值必须再次进行确认。

UpdateIf 函数

使用 UpdateIf 函数可以在一个或多个记录中修改一个或多个值,而这些记录则与一个或多个条件匹配。 条件可以是其结果为 truefalse 的任意公式,并且可以通过名称引用数据源的列。 函数会评估每个记录的条件,并修改结果为 true 的任何记录。

若要指定某个修改,请使用包含新的属性值的更改记录。 如果使用大括号以内联方式提供此更改记录,则属性公式可以引用要修改的记录的属性。 可以通过此行为根据公式修改记录。

就像使用 UpdateIf 一样,也可使用 Patch 函数更改记录的特定列,而不影响其他列。

UpdateUpdateIf 都以的形式返回修改的数据源。 必须在行为公式中使用任一函数。

代理

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

语法

Update( DataSource, OldRecord, NewRecord [, All ] )

  • DataSource – 必需。 数据源,其中包含要替换的记录。
  • OldRecord – 必需。 要替换的记录。
  • NewRecord – 必需。 替换记录。 这不是更改记录。 将替换整个记录,缺失的属性将包含 空白
  • All – 可选。 在集合中,同一记录可能出现多次。 指定 All 参数即可更新记录的所有副本。

UpdateIf( DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • DataSource – 必需。 数据源,其中包含要修改的一个或多个记录。
  • Condition(s) – 必需。 一个公式,对于一个或多个需修改的记录,该公式的求值结果为 true。 可以在公式中使用 DataSource 的列名。
  • ChangeRecord(s) - 必需。 对于每个相应的条件,将对符合条件的 DataSource 记录应用新属性值的更改记录。 如果使用大括号以内联方式提供记录,则可在属性公式中使用现有记录的属性值。

示例

在以下示例中,您将替换或修改某个数据源中的记录,该数据源名为 IceCream 且以下表中的数据开头:

IceCream 示例。

公式 描述 结果
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
替换数据源中的某条记录。 替换记录。

修改了 IceCream 数据源。
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) 修改其 Quantity 大于 175 的记录。 Quantity 字段按 10 递增,其他字段不进行修改。 修改记录。

修改了 IceCream 数据源。
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
替换数据源中的某条记录。 替换记录中未提供 Quantity 属性,因此在结果中该属性将为 空白 未提供数量时替换记录。

修改了 IceCream 数据源。
UpdateIf( IceCream, true, { Quantity: 0 } ) 将数据源中所有记录的 Quantity 属性的值设置为 0。 将所有的数量设置为 0。

修改了 IceCream 数据源。

分步操作

  1. 导入或创建名为 Inventory 的集合,让其显示在库中,如在库中显示数据所述。

  2. 将库命名为 ProductGallery

  3. 添加名为 UnitsSold 的滑块,将其 Max 属性设置为以下表达式:
    ProductGallery.Selected.UnitsInStock

  4. 添加一个按钮,然后将其 OnSelect 属性设置为以下公式:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. 按 F5,在库中选择一个产品,使用滑块指定一个值,然后选择该按钮。

    所指定产品的库存单元数下降指定的数量。

备注

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

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