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

PowerApps如何为Gallery添加4种筛选?按SharePoint ID搜索报错如何解决

PowerApps Gallery控件多筛选规则集成问题

需求

需在PowerApps的Gallery控件中实现4种筛选规则:

  • 按设备状态下拉框筛选
  • 按位置下拉框筛选
  • 按创建日期阈值筛选
  • 按SharePoint列表ID搜索筛选

问题说明

原有整合ID搜索功能的代码运行报错,移除Search相关代码后,位置、状态、日期三类筛选均可正常运行,核心问题为无法正确集成ID搜索筛选功能。

原整合搜索功能的错误代码

SortByColumns(
Search(
    Filter(
        Switch(
            true;
            Dropdown_Equipo_Estado_2.SelectedText.Value <> "Todos";
            Filter( 
                TRASLADO_EQUIPO; 
                ( LOCALIZACION_ORIGEN_ID = Dropdown_Equipo_Localizacion_2.Selected.ID || 
                LOCALIZACION_DESTINO_ID = Dropdown_Equipo_Localizacion_2.Selected.ID)  &&
                ESTADO = Dropdown_Equipo_Estado_2.SelectedText.Value
                );
            Dropdown_Equipo_Estado_2.SelectedText.Value = "Todos";
            Filter( 
                TRASLADO_EQUIPO; 
                ( LOCALIZACION_ORIGEN_ID = Dropdown_Equipo_Localizacion_2.Selected.ID || 
                LOCALIZACION_DESTINO_ID = Dropdown_Equipo_Localizacion_2.Selected.ID)
                ); 
            Filter(
                TRASLADO_EQUIPO;
                ( LOCALIZACION_ORIGEN_ID = Dropdown_Equipo_Localizacion_2.Selected.ID || 
                LOCALIZACION_DESTINO_ID = Dropdown_Equipo_Localizacion_2.Selected.ID)
                )
            );
            FECHA_CREACION >= DatePicker1_1.SelectedDate
        );
     TextInput6.Text; "ID"); 
     "ID";
     Ascending)

移除Search后的可运行参考代码

SortByColumns(
Filter(
Switch(
    true;
    Dropdown_Equipo_Estado_2.SelectedText.Value <> "Todos";
    Filter( 
        TRASLADO_EQUIPO; 
        ( LOCALIZACION_ORIGEN_ID = Dropdown_Equipo_Localizacion_2.Selected.ID || 
        LOCALIZACION_DESTINO_ID = Dropdown_Equipo_Localizacion_2.Selected.ID)  &&
        ESTADO = Dropdown_Equipo_Estado_2.SelectedText.Value);
    Dropdown_Equipo_Estado_2.SelectedText.Value = "Todos";
    Filter( 
        TRASLADO_EQUIPO; 
        ( LOCALIZACION_ORIGEN_ID = Dropdown_Equipo_Localizacion_2.Selected.ID || 
        LOCALIZACION_DESTINO_ID = Dropdown_Equipo_Localizacion_2.Selected.ID));
        
    Filter(
        TRASLADO_EQUIPO;
        ( LOCALIZACION_ORIGEN_ID = Dropdown_Equipo_Localizacion_2.Selected.ID || 
        LOCALIZACION_DESTINO_ID = Dropdown_Equipo_Localizacion_2.Selected.ID)));
    
        FECHA_CREACION >= DatePicker1_1.SelectedDate

); "ID";Ascending)

解决方案

报错原因

PowerApps的Search函数仅支持对文本类型字段进行搜索,SharePoint列表原生ID字段为数字类型,直接调用会触发报错。

修复后完整代码

将ID转换为文本类型后用Filter实现匹配效果,同时兼容搜索框为空的场景,完整可运行代码如下:

SortByColumns(
    Filter(
        Switch(
            true;
            Dropdown_Equipo_Estado_2.SelectedText.Value <> "Todos";
            Filter( 
                TRASLADO_EQUIPO; 
                ( LOCALIZACION_ORIGEN_ID = Dropdown_Equipo_Localizacion_2.Selected.ID || 
                LOCALIZACION_DESTINO_ID = Dropdown_Equipo_Localizacion_2.Selected.ID)  &&
                ESTADO = Dropdown_Equipo_Estado_2.SelectedText.Value
                );
            Dropdown_Equipo_Estado_2.SelectedText.Value = "Todos";
            Filter( 
                TRASLADO_EQUIPO; 
                ( LOCALIZACION_ORIGEN_ID = Dropdown_Equipo_Localizacion_2.Selected.ID || 
                LOCALIZACION_DESTINO_ID = Dropdown_Equipo_Localizacion_2.Selected.ID)
                ); 
            Filter(
                TRASLADO_EQUIPO;
                ( LOCALIZACION_ORIGEN_ID = Dropdown_Equipo_Localizacion_2.Selected.ID || 
                LOCALIZACION_DESTINO_ID = Dropdown_Equipo_Localizacion_2.Selected.ID)
                )
            );
            FECHA_CREACION >= DatePicker1_1.SelectedDate && 
            (IsBlank(TextInput6.Text) || StartsWith(Text(ID), TextInput6.Text))
        );
    "ID";
    Ascending
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:36:02