2

目前,我的 powerapp 有一个基于单个共享点列表的图库,但我想在我的应用程序上实现一个图库,它应该显示来自 3 个不同的共享点列表的项目(都具有相同的列/字段),并且我正在使用过滤器厨房,以便用户可以在框中键入并仅获得过滤后的响应,而不是显示所有数据

请帮忙

我已经在 gallery1.items 中有这个公式:

Search('PO list', TextSearchBox.Text,"Branch_x0020_Code") 例如,考虑我有 2 个列表:列表 1 和列表 2,现在当用户在搜索框(即 TextSearchbox)中搜索时,我希望图库过滤数据其中“Branch_x0020_Code”等于列表中的搜索数据

编辑 1:这是我要实现的公式:公式:ClearCollect(Aitems,'PO list',PO 2)

错误如下图所示:

错误

我的“采购订单列表”有一个名为状态的列,其类型是单行文本,而在“采购订单 2”中,状态列的类型是选择。因为我无法更改数据类型,所以我已将列表列名称之一更改为“状态 0"。现在我在这两个列表之间的唯一区别是一个列表有一些额外的列,而另一个没有。但是,当我尝试实现时,我仍然收到此“不兼容类型”错误。

4

2 回答 2

2

画廊不能一次直接显示来自多个数据源的结果。然而,实现这一点的一种方法是首先将各种列表中的数据收集到一个集合中,然后将图库绑定到该集合。

例如,您可以在应用程序的OnStart属性或“更新”按钮的 OnSelect 属性中执行此操作:

ClearCollect( CombinedListsCollection,
 List1, List2, List3 )

然后将 gallery.items 绑定到集合:

Search( CombinedListsCollection, TextInput.Text, [columns])

解决此问题的另一种方法是在用户搜索时动态收集一组过滤的记录。例如,在搜索框的文本输入控件上,将“OnChange”属性设置为:

ClearCollect(CombinedFilteredLists,
Filter(List1, StartsWith(Title, TextInput1.Text)),
Filter(List2, StartsWith(Title, TextInput1.Text)))

然后将画廊项目设置为 CombinedFilteredLists。

使用包含在 Filter() 中的StartsWith( ) 来委派大型 SharePoint 列表,如上例所示。

这是一个实际效果的 gif: 在 PowerApps 中将两个 SharePoint 列表合并到一个库中

于 2018-12-13T01:45:00.557 回答
0

如果两个列表的列/字段完全相同,那么 Ryan 的解决方案就可以了。但是,如果某些字段不同(它们的名称或类型),那么您可以使用可以帮助您更改PowerApps中“表格形状”的众多功能之一。

在您的特定情况下,如果您在 SharePoint 中有以下两个列表:

  • 清单01
    • 标题(文字)
    • 状态(文本)
  • 清单02
    • 标题(文字)
    • 状态(选择)

然后,您可以使用以下表达式创建包含两个列表内容的集合:

ClearCollect(
    ItemsCollection,
    ShowColumns(
        AddColumns(List01, "StatusText", Status),
        "Title", "StatusText"));
Collect(
    ItemsCollection,
    ShowColumns(
        AddColumns(List02, "StatusText", Status.Value),
        "Title", "StatusText"));

上面的表达式在两个列表中创建了一个名为“StatusText”的新列 (*),将 Status 列的类型规范化为文本,然后从两个列表中选择 Title 和 StatusText 列,从而确保架构(字段)相同。

(*) AddColumns 函数不会在 SharePoint 列表中创建任何其他列;相反,它返回一个新的“虚拟”表,可以在 PowerApps 的表达式/控件中使用。

于 2018-12-18T20:40:43.257 回答