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

求助:对比SharePoint列表项匹配后,用第三列颜色值填充标签的代码修正

问题:SharePoint列表匹配动态颜色填充

原有代码可在SharePoint列表项匹配指定文本(如"FLT")时,将标签填充色设为固定颜色(深红色)。现需调整逻辑:对比第一个列表RP_Tasks_SPList的Task_Type_Short项与第二个列表RP_Faulting_Maintenace_Codes_SPList的FM_Code_Short列,匹配成功时用第二个列表中对应行的FM_Code_Colour值填充标签。

可正常运行的原代码

If(
    !IsBlank(
        LookUp(
            RP_Tasks_SPList, 
            Task_Owner = Label3.Text &&  
            Text(DateValue(Date_of_Task_From), "yyyy-mm-dd") = Text(DateTimeValue(Button2_2.Text), "yyyy-mm-dd") &&
            Task_Type_Short = "FLT"
        )
    ),
    Color.DarkRed,
    RGBA(241,244,249, 1)
) 

待调试的错误代码

If(
    !IsBlank(
        LookUp(
            RP_Tasks_SPList, 
            Task_Owner = Label3.Text &&  
            Text(DateValue(Date_of_Task_From), "yyyy-mm-dd") = Text(DateTimeValue(Button2_2.Text), "yyyy-mm-dd") &&
            Task_Type_Short = Filter(RP_Faulting_Maintenace_Codes_SPList,FM_Code_Short)
        )
    ),
    LookUp(RP_Faulting_Maintenace_Codes_SPList,FM_Code_Colour),
    RGBA(241,244,249, 1)
) 

错误分析与修正方案

核心错误点

  1. 数据表与单个值的判断错误:Filter(RP_Faulting_Maintenace_Codes_SPList,FM_Code_Short)返回的是数据表,不能直接和Task_Type_Short(单个文本值)做相等判断,需用in运算符判断值是否在目标列的集合中。
  2. LookUp缺少匹配条件:直接调用LookUp(RP_Faulting_Maintenace_Codes_SPList,FM_Code_Colour)会返回列表第一行的颜色值,无法对应当前匹配的任务类型,必须指定匹配FM_Code_Short与当前任务的Task_Type_Short。

修正后的代码(变量版,性能更优)

// 先获取当前匹配的任务记录,避免重复查询
Set(varMatchedTask,
    LookUp(
        RP_Tasks_SPList, 
        Task_Owner = Label3.Text &&  
        Text(DateValue(Date_of_Task_From), "yyyy-mm-dd") = Text(DateTimeValue(Button2_2.Text), "yyyy-mm-dd") &&
        Task_Type_Short in RP_Faulting_Maintenace_Codes_SPList.FM_Code_Short
    )
);

// 根据匹配结果设置颜色
If(
    !IsBlank(varMatchedTask),
    LookUp(RP_Faulting_Maintenace_Codes_SPList, FM_Code_Short = varMatchedTask.Task_Type_Short, FM_Code_Colour),
    RGBA(241,244,249, 1)
)

修正后的代码(简化版,无需变量)

If(
    !IsBlank(
        LookUp(
            RP_Tasks_SPList, 
            Task_Owner = Label3.Text &&  
            Text(DateValue(Date_of_Task_From), "yyyy-mm-dd") = Text(DateTimeValue(Button2_2.Text), "yyyy-mm-dd") &&
            Task_Type_Short in RP_Faulting_Maintenace_Codes_SPList.FM_Code_Short
        )
    ),
    LookUp(
        RP_Faulting_Maintenace_Codes_SPList, 
        FM_Code_Short = LookUp(
            RP_Tasks_SPList, 
            Task_Owner = Label3.Text &&  
            Text(DateValue(Date_of_Task_From), "yyyy-mm-dd") = Text(DateTimeValue(Button2_2.Text), "yyyy-mm-dd")
        ).Task_Type_Short,
        FM_Code_Colour
    ),
    RGBA(241,244,249, 1)
)

补充说明

  • 变量版通过存储匹配记录减少重复查询,适合数据量较大的场景。
  • 简化版逻辑直接嵌套查询,适合数据量小、逻辑简单的场景。
  • 需确保RP_Faulting_Maintenace_Codes_SPList的FM_Code_Colour列存储Power Apps可识别的颜色格式(如Color.DarkRed、RGBA(255,0,0,1)或十六进制值)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:09:53