You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Apps中基于双SharePoint列表筛选画廊及搜索功能异常问题

Power Apps画廊筛选问题:保留搜索功能同时解决委托警告与数据获取失败

问题说明

  • 需求:OutGallery控件需从CarRentalAgreements列表筛选出未存在于Check-In Agreements列表的记录,同时支持通过协议号/车牌号搜索
  • 异常现象:现有代码无语法错误,但触发委托警告,且无法正常获取SharePoint列表数据;移除搜索条件后画廊可显示数据,但需保留搜索功能

现有代码

当前画廊Items属性代码:

Filter(
    Filter(
        CarRentalAgreements,
        'TextSearch-In'.Text in ['Agreement No'] || 'TextSearch-In'.Text in ['Car No']
    ),
    !IsBlank(
        LookUp(
            'Check-In Agreements',
            Agreement = 'Agreement No' && Car = 'Car No'
        )
    ) = false
)

导致冲突的搜索功能代码片段:

'TextSearch-In'.Text in ['Agreement No'] || 'TextSearch-In'.Text in ['Car No']

解决方案

1. 替换不支持委托的搜索逻辑

SharePoint对in操作符的文本包含搜索不支持委托,改用支持委托的Search函数实现多字段搜索:

Search(CarRentalAgreements, 'TextSearch-In'.Text, "Agreement No", "Car No")

注:Search函数支持在SharePoint列表的文本字段上进行委托搜索,可覆盖协议号和车牌号的包含匹配需求

2. 优化排除已入住记录的逻辑

嵌套LookUp会导致委托问题,先将已入住的协议号+车牌号组合加载到本地集合,再基于集合筛选:

  • 在屏幕的OnVisible属性中添加集合加载代码:
    ClearCollect(CheckedInPairs, ShowColumns('Check-In Agreements', "Agreement", "Car"))
    
  • 修改画廊Items属性代码:
    Filter(
        Search(CarRentalAgreements, 'TextSearch-In'.Text, "Agreement No", "Car No"),
        IsBlank(LookUp(CheckedInPairs, Agreement = 'Agreement No' && Car = 'Car No'))
    )
    

3. 额外注意事项

  • 确认SharePoint列表字段的内部名称与代码中一致(避免显示名称含空格导致的匹配错误)
  • 若Check-In Agreements列表数据量过大,可添加分页逻辑或增量加载集合,避免性能问题
  • 检查应用设置中的委托支持,确保未关闭相关功能

内容的提问来源于stack exchange,提问作者Maisam Alrajabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 06:05:18