练习 - 在画布应用中使用外部数据

已完成

在本练习中,您将通过将数据源添加到应用中、使用集合创建/修改数据,并通过 Patch 函数修改数据,来在画布应用中使用外部数据。

您需要下载此电子表格以便完成本练习。 在链接打开后选择下载。 提取 Excel 电子表格并将电子表格上传到您自己的 OneDrive。

添加数据源

  1. 登录到 Power Apps

  2. 从空白位置创建新的 Power Apps 画布应用并将其命名为 ExternalData。选择平板电脑格式。

  3. 请确保已将 Excel 表(上面的链接)添加到 OneDrive。

  4. 从标头功能区中选择插入按钮,然后选择垂直库

  5. 在库的选择数据源窗格中,在搜索字段中输入“OneDrive”,然后从列表中选择 OneDrive for Business。 此外,还可以展开“连接器”并滚动浏览所有可用连接器,找到 OneDrive for Business

    将 OneDrive 数据源添加到库的屏幕截图。

  6. 添加连接下,选择您要用于 OneDrive for Business 的连接(其下方有对应的电子邮件地址)。

  7. OneDrive for Business 底部,选择连接

  8. 当提示选择 Excel 文件时,搜索或滚动到在步骤 3 中下载的 Excel 文件并选择该文件。

  9. 选择表面板下,选择 Items 表,然后选择连接

    您的库现在已连接到 OneDrive for Business 中名为“Items”的 Excel 表。 确保库的 Items 属性与 Items 表相关,然后库应显示表中的三个条目。

    将 OneDrive 数据源添加到库项的屏幕截图。

  1. 请确保已选择您添加的库控件。

  2. 在右侧的属性窗格中,选择 Layout 属性的下拉菜单。 或者,当您将鼠标悬停在所选控件上时,您将看到一个可选布局按钮,其中包含相同的选项。

  3. 选择图像、标题、副标题正文布局。

  4. 在右侧的属性窗格中,选择 Fields 属性(已选择 8 个)的“编辑”按钮,然后按如下所示设置字段(请注意,控件后面带有数字,因此例如“Body”为“Body1”,请参考下图):

    • 正文:Description

    • 图像:Image

    • 副标题:UnitPrice

    • 标题:Name

    或者,您可以将鼠标悬停在所选控件上,然后在显示在该控件上方的悬停菜单中选择字段按钮。 完成调整后,只需重新选择字段按钮即可关闭该选项。

    库字段的屏幕截图。

  5. 关闭数据对话框。

  6. 在库中,选择第一行中的价格。 将 Text 属性修改为:Text(ThisItem.UnitPrice,"$###.00")

  7. 在库中,选择第一行中的图像。

  8. 在右侧的属性窗格中,选择图像位置属性的下拉菜单。

  9. 将属性从 Fit 更改为 Fill,您将看到图片会扩展以填充图像控件的维度。

现在,我们已经在库中添加、自定义和配置了数据。

在集合和数据源之间移动数据

  1. 选择 Screen1(库以外的任意位置)。

  2. 我们可通过选择应用功能区中的插入按钮来添加按钮。 选择按钮,并将新的按钮控件放置在库下方。

  3. 将按钮上的文本 更改为添加到集合,并将字号 从“15”调整为“12”,以便文本在一行中适合按钮。

  4. 选择该按钮,然后在编辑栏中使用此表达式将 OnSelect 值替换为 false

     ClearCollect(colItemsCollection, Items)
    

    colItemsCollection:引用集合名称

    Items:引用数据源名称

    ClearCollect:清除任何现有项,然后将 Items 中的所有记录复制到 colItemsCollection 集合中

    “添加到集合”按钮的屏幕截图。

  5. 选择 Power Apps 编辑器右上角的预览按钮(或按 F5 键)以进入预览模式。 选择添加到集合按钮,然后退出预览模式。 此外,还可以按住 Alt 键并选择添加到集合按钮。

  6. 在左边栏选择变量按钮,展开集合选项,然后选择您创建的 colItemsCollection 旁边的省略号。 选择查看表选项。

    显示“变量”菜单的屏幕截图,其中展开了“集合”并突出显示了“查看表”按钮。

  7. 您现在应该看到一个弹出窗口,其中显示了存储在集合中的表。 请注意,Items 数据源中的三个记录都添加到 colItemsCollection 集合中。 您可以运用此技巧查看应用的任何集合和其他变量。

    变量的屏幕截图。

  8. 选择取消关闭弹出视图,并返回您的应用画布。

浏览其他适用于集合的函数

  1. 树视图中,选择新建屏幕>空白

  2. 选择插入按钮,搜索数据,然后选择数据表。 借助数据表控件,我们可以快速查看表格数据。

    “+ 插入”按钮的特写,其中在搜索字段中输入了“数据”并且突出显示了数据表。

  3. 现在,转到右侧的属性面板,然后选择您的 Items 表作为数据源。 您将看到 Name、UnitPrice 和 UnitSold 在控件中显示为列。

  4. 在数据表控件的 Items 属性中,删除 Items 并输入:colItemsCollection

  5. 通过选择功能区中的插入,插入一个按钮,然后选择按钮并将按钮放置在表下方。 在屏幕上的数据表控件下,从左到右再添加三个按钮。

  6. 将所有四个按钮上的文本分别更改为添加列、删除列、显示列、重命名列。 您只需双击每个按钮并键入新名称,即可完成此操作。 将重命名列 按钮的字体大小调整为 12,使其适合单行。

  7. 选择添加列按钮并将 OnSelect 属性更新为此表达式:

    Collect(colAddCollection, AddColumns(colItemsCollection, Revenue, UnitPrice * UnitsSold))
    

    当我们完成本练习时,您可能会注意到编辑栏中的“助手”图标。 助手可以向您解释公式中发生的情况。

  8. 针对“添加列”按钮的 OnSelect 属性,在编辑栏中选择助手图标。 然后,选择解释此公式

    现在,您应该会看到类似于下图的公式解释。 另请注意,您可以使用 Copy 函数向公式添加备注。

    公式解释的屏幕截图。

    我们的示例从 Copilot 获得以下解释:此表达式通过将“UnitPrice”和“UnitsSold”列相乘向“colItemsCollection”表添加名为“Revenue”的新列,然后将更新后的表收集到“colAddCollection”集合中。

    您甚至可以复制 Copilot 解释并将其作为“备注”行添加到您的公式中。 只需在代码前添加双正斜杠“//”,它就会告诉 Power Apps 您的行不是可执行代码。

  9. 在画布上选择删除列按钮,并将 OnSelect 属性更新为此表达式:

    Collect(colDropCollection, DropColumns(colItemsCollection, UnitPrice))
    

    再次尝试使用助手 - 解释此公式

  10. 选择显示列按钮并将 OnSelect 属性更新为此表达式:

    Collect(colShowCollection, ShowColumns(colItemsCollection, Name))
    

    选择此按钮会创建一个名为 *colShowCollection 的新集合,该集合包括 colItemsCollection 集合中的所有数据,但它使用 ShowColumns 函数仅显示 Name 列。

  11. 选择重命名列按钮并将 OnSelect 属性更新为此表达式:

    Collect(colRenameCollection, RenameColumns(colItemsCollection, Name, Product))
    

    选择此按钮会创建一个名为 colRenameCollection 的新集合,该集合包括 colItemsCollection 集合中的所有数据,但通过使用 RenameColumns 函数可将 Name 列更改为 Product

  12. 选择 Power Apps 编辑器右上角的预览(或播放)按钮以进入预览模式。 选择全部四个按钮。 然后退出预览模式。 我们刚刚进行的操作是创建四个其他集合。

  13. 让我们来看看刚创建的四个新集合。 选择变量 > 集合,再选择 colAddCollection 旁边的省略号,然后选择查看表。 请注意,变量弹出窗口左侧有一个菜单,该菜单显示了我们创建的所有四个新集合以及原始集合。 您可以选择各个集合,查看其对数据表中显示的原始集合的影响。

    colAddCollection

    colAddCollection 的屏幕截图。 colDropCollection

    colDropCollection 的屏幕截图。 colShowCollection

    colShowCollection 的屏幕截图。 colRenameCollection

    colRenameCollection 的屏幕截图。

    查看完毕后,关闭变量弹出窗口。 请注意,集合是临时数据表,仅在使用应用时可用,并且仅对当前用户可用。 因此,一旦您关闭应用,集合就会消失。

使用 Patch 函数

  1. 返回应用中的 Screen 1

  2. 添加文本标签控件(选择插入按钮并选择文本标签)。 将 Text 属性重命名为产品名称。 您可以通过双击标签并直接在控件中键入内容来执行此操作。 然后,将标签放置在库旁边。

    提示

    快速复制和粘贴控件的一种简单方法是选择控件,按住 Ctrl 键并按 C;然后(在按住 Ctrl 键的同时)按 V。您将看到您的项目粘贴在刚刚复制的控件的偏右下方。

  3. 选择标签后,复制标签,然后将所复制标签的 Text 设为新描述

  4. 再次使用插入按钮插入文本输入控件。 清除默认属性以使其为空。 然后,复制此控件并将两个文本输入放置在上述步骤中创建的标签旁边。 您的屏幕应该类似于下图。

    带有标签输入的屏幕的屏幕截图。

    此图像中显示的价格仅供参考,并不反映实际价格。

  5. 接下来,插入一个按钮控件并将其放置在标签下方。 将 Text 属性更改为更新

  6. 选择产品名称 标签右侧的文本输入。

  7. 在编辑栏中,确保选择 Default 属性,然后将表达式更改为以下内容(请注意,库控件的名称不一定是 Gallery1,请根据实际情况相应地更改公式):

    Gallery1.Selected.Name
    

    此标签现在显示库中所选记录的名称。 您可以通过将应用置于预览模式下(或者,长按 Alt 键),然后从库中选择不同的项目,来进行测试。 注意显示的产品名称 如何随着您选择不同的库项而变化。

  8. 新建描述 标签右侧的文本输入控件重复此流程。 设置 Default 公式:

    Gallery1.Selected.Description
    

    另外,还需要注意显示在所选库项左侧的黑色垂直条。

  9. 选择更新按钮。

  10. 将按钮的 OnSelect 属性更改为以下表达式:

    Patch(Items,LookUp(Items, Name = TextInput1.Text), { Description: TextInput1_1.Text })
    

    注意

    您的文本输入控件的名称可能与此示例不同。 相应地调整公式。

让我们来概括所做的工作。 我们创建了一种更新所选产品描述的简单方法。

  • Patch - 提供在您的数据源中修改 或创建记录的方法,在本示例中我们将修改记录。

  • LookUp - 使用我们的产品名称来查找我们要修改的特定记录。 LookUp 返回符合以下条件的第一条记录:Name = TextInput1.Text

  • Power Apps 找到匹配记录后(通过 LookUp),它将根据您在新建描述 文本输入中输入的内容在数据源中更新项目的描述

可通过预览应用对此进行测试。 在库中选择“肉桂”项目,将当前描述替换为“肉桂味绿茶”,然后选择更新。 片刻之后,库中的描述将更改为更新后的描述。

更改为“肉桂”的最终输出窗体的屏幕截图。

恭喜! 您已了解了通过 Patch 更新数据源的简单技术,以及如何使用集合在应用中使用/修改数据。