首页 > 解决方案 > PowerApps - 库过滤多行文本输入中的所有值 - 委派错误

问题描述

我正在尝试为我的团队创建一个简单的 CRUD 应用程序,以在 SharePoint 列表中创建、查看和更新​​记录。

我对 powerapps 相当陌生,对绕过委托查询/错误知之甚少。

我被困在创建视图/更新屏幕上。我有一个多行文本输入,用户将输入多个唯一的包号。这个想法是,库应从 SharePoint 列表中筛选与多行文本框中的包参考号匹配的记录。然后,用户可以通过单击按钮全选并更新状态。

在此处输入图像描述

如上图所示,我希望仅针对多行文本搜索框中的品牌包参考过滤图库。

我尝试使用以下公式在搜索框中创建参考编号的集合。

ClearCollect(FilterList,{RefNos: Split(Substitute(TextInput2.Text," ",","),",")})

然后尝试使用 ForAll 的过滤器功能,如下所示。但这没有用。它给了我一个委托错误。

ForAll('Lost Packages Log', Filter('Lost Packages Log',FilterList.RefNos = 'Brand Package Reference'))

有人可以帮我创建一个可以帮助我实现目标的公式。

标签: sharepointfilterlookuppowerapps

解决方案


听起来你有两个问题:

  • 委托
  • 通过文本框中的多个值过滤一列。

为了避免委派错误,您需要将数据集保持在 2k 记录以下(假设您将最大记录设置为 2000 in File/Settings/Advanced Settings/Data row limit...)。

一种方法是创建OnVisible屏幕记录的集合,该集合始终低于 2k。

例子:

ClearCollect(colRecords,
    Filter(yourSharepointList, 
        StartsWith(status, "urgent")
    )
)

StartsWith()函数适用于文本列,并可委托给 Sharepoint。一旦您的记录数始终低于 2k,您就可以解决多行过滤器问题。

这将按在搜索框中输入的项目过滤图库:

将 GalleryItems属性设置为:

If(
    IsBlank(TextInput1.Text),
    colSample,
    Filter(
        colSample, 
        packingNumber exactin  Split(
                            TextInput1.Text, 
                            Char(10)
                          ).Result
    )
)

粗略翻译:

  • 如果搜索框为空白,则显示所有记录。
  • 否则,过滤packingNumber恰好在用换行符分割文本框的结果中的记录集合。

结果是: 在此处输入图像描述

这里是一个示例应用程序,尽管托管服务只会提供 30 天)


推荐阅读