有时,您需要的不仅仅是窗体

已完成

在 Power Apps 中构建画布应用时,可转到“库”以显示数据源中的记录,转到“窗体”以查看、创建和编辑单条记录,但有时只有窗体还不够。 在这些情况下,Power Apps 提供用于直接更新表格数据源的函数。

直接创建和编辑记录

本模块将介绍如何使用 Patch 函数直接更新数据源,而无需使用窗体。

在需要以重复的方式对数据进行操作而无需用户交互时,或者在应用设计不允许使用窗体时,将最常使用 Patch。 例如,如果希望在用户每次单击按钮以导航到另一个屏幕时更新日志记录数据源,则可以使用该按钮的 OnSelect 属性公式。

Patch(LoggingTable, Defaults(LoggingTable), {WhoClicked:
User().FullName, WhenClicked: Now()}); Navigate(NextScreen,
ScreenTransition.Cover)

本公式将在名为 LoggingTable 的数据源中创建新记录。 WhoClicked 列设置为已登录用户的 FullName 属性,WhenClicked 列设置为他们单击按钮的日期和时间。 这将使用封面屏幕转换打开名为 NextScreen 的屏幕。

删除记录

还存在可用于从数据源中删除一条或多条记录的函数。 这些函数包括:

  • Remove 和 RemoveIf - 这些函数用于删除数据源中的记录。

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

例如,如果想要使用户能够从库控件中删除记录,请将垃圾桶图标添加到显示数据源 CustomerOrders 的库,然后将图标的 OnSelect 属性设置为以下内容。

Remove(CustomerOrders, ThisItem)

本公式将从 CustomerOrders 数据源删除显示垃圾桶图标的项的记录。 由于没有确认步骤,因此,可以考虑实现检查或弹出式对话框,以确认用户是真的想要删除记录。

对记录进行批量更改

Patch 和 Remove 这两个函数均可用于影响一条记录。 如果需要影响对多条记录的更改,可使用以下两个选项:

  • 使用 ForAll 函数(这在前一模块已有所介绍)循环访问数据表,并针对表中的每条记录运行 Patch 或 Remove 函数。

  • 使用 Collect 函数可以从一个表写入到另一个表。 源表的每条记录均作为单独的记录添加到目标表。

本学习路径未涵盖这些主题,它们涵盖在其他 Power Apps 学习途径中。

集合即为数据源

请务必记住,这些函数可以使用集合作为其目标。 Patch、Remove 和 RemoveIf 均可用于修改表格数据源和集合。 在构建更复杂的应用时,将数据存储在集合中并使用这些项是很常见的,这些函数将是这些操作的重要组成部分。

本模块的剩余部分将介绍如何更新数据源。 请记住,除非另有说明,否则数据源可以是表格数据源,也可以是集合。

下一个单元将介绍如何创建和编辑记录。