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

已完成

在本练习中,您将通过将数据源添加到应用中、使用集合创建/修改数据,并通过 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 的连接(其下方有对应的电子邮件地址)。

    添加到 OneDrive for Business 的连接的屏幕截图,其中突出显示了用户的连接。

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

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

  9. 检查表,然后选择连接

    连接数据的屏幕截图。

此时,您的库已连接到 OneDrive for Business 中的 Excel 表,并且可以在库控件中显示数据。

  1. 选择已添加的库。

  2. 在右侧的属性窗格中,选择 Layout 属性下拉菜单。

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

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

    • Body:Description

    • Image:Image

    • Subtitle:UnitPrice

    • Title:Name

    库字段的屏幕截图。

  5. 关闭数据对话框(选择右上角的 X)。

  6. 在库中,选择第一行中的价格。

  7. 在编辑栏中,请确保已选择 Text 属性并输入以下内容:

    "$" & ThisItem.UnitPrice

    单位价格文本的屏幕截图。

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

  9. 在右侧的属性窗格中,选择 Image Position 属性下拉菜单。

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

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

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

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

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

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

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

     Collect(colItemsCollection, Items)`
    

    colItemsCollection:引用集合名称

    Items:引用数据源名称

    Collect:会将中的所有记录复制到 colItemsCollection 集合中

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

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

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

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

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

    变量的屏幕截图。

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

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

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

  2. 选择插入按钮,搜索数据,然后选择数据表

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

  3. 在新数据表的选择数据源对话窗格中,选择 colItemsCollection

    “选择数据源”对话框的屏幕截图,其中突出显示了“colItemsCollection”。

    现在,我们已将集合 colItemsCollection 设置为此控件的数据源,而不是 Excel 表格中的 Items 表。 下一步是定义要显示的字段。

  4. 在右侧的属性窗格中,选择 Fields 属性的编辑字段按钮。

  5. 选择添加字段

  6. 选择所有可用字段,然后选择添加

    数据表字段的屏幕截图。

  7. 关闭数据窗格(选择数据右侧的 X)。

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

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

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

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

    选择此按钮会创建一个名为 colAddCollection 的新集合,该集合会从 colItemsCollection 集合中获取数据,并通过使用 AddColumns 函数添加名为 Revenue 的新列,该列的计算方法为 UnitPrice * UnitSold。

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

    Collect(colDropCollection, DropColumns(colItemsCollection, "UnitPrice"))
    

    选择此按钮会创建一个名为 colDropCollection 的新集合,该集合会复制 colItemsCollection 集合中的所有数据,但通过使用 DropColumns 函数,它可删除 UnitPrice 列。

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

    Collect(colShowCollection, ShowColumns(colItemsCollection, "Name"))
    

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

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

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

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

    完成后,您的按钮应如下所示:

    四个已完成的按钮的屏幕截图。

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

  15. 我们来看看刚创建的四个新集合。 选择变量 > 集合,再选择 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 - 使用我们的产品名称来查找我们要修改的记录。 它返回符合以下条件的第一条记录:Name = TextInput1.Text

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

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

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

恭喜! 您已经学会了一种更新数据源的技巧。