additionalRowClass嵌套IF格式异常:日期范围与空值判断求助
问题1:日期范围第三个逻辑不生效的修复
你的嵌套IF逻辑存在冗余判断,且可能因日期字段数值类型不统一导致第三个范围不触发。调整后的代码简化了逻辑(前面条件不满足时,自动排除更小范围,无需重复判断大于前一个区间),同时统一用Number()包裹日期字段确保数值类型正确:
"additionalRowClass": "=if(Number([$TicketSentDate])==0, '', if(Number([$TicketSentDate]) <= (Number([$TicketDate]) + 604800000), 'ms-bgColor-sharedOrangeYellow20 ms-bgColor-sharedOrangeYellow20--hover', if(Number([$TicketSentDate]) <= (Number([$TicketDate]) + 1209600000), 'ms-bgColor-themeTertiary ms-bgColor-themeTertiary--hover', if(Number([$TicketSentDate]) <= (Number([$TicketDate]) + 1814400000), 'ms-bgColor-sharedRed20 ms-bgColor-sharedRed20--hover',''))))"
逻辑说明:
- 先判断
TicketSentDate为空的情况 - 依次判断<=7天、<=14天(自动排除<=7天的情况)、<=21天(自动排除<=14天的情况)
- 所有日期字段转成数值类型,避免类型不匹配导致的比较错误
问题2:空值
ReminderStatus触发错误格式的修复 你的代码存在语法错误(缺少闭合括号),同时空值判断未覆盖null场景。修复后的代码:
"additionalRowClass": "=if([$TicketStatus]=='New' || [$ReminderStatus]==null || [$ReminderStatus]=='','sp-field-borderNone', if([$ReminderStatus]=='1st Reminder Due', 'ms-borderColor-yellowLight sp-field-borderAllSemibold sp-field-borderLeftBold sp-field-borderTopBottomDashed sp-field-borderRightBold sp-field-borderRightSolid sp-field-borderLeftSolid', if([$ReminderStatus]=='2nd Reminder Due','ms-borderColor-orangeLighter sp-field-borderAllSemibold sp-field-borderLeftBold sp-field-borderTopBottomDashed sp-field-borderRightBold sp-field-borderRightSolid sp-field-borderLeftSolid',if([$ReminderStatus]=='3rd Reminder Due','ms-borderColor-red sp-field-borderAllSemibold sp-field-borderLeftBold sp-field-borderTopBottomDashed sp-field-borderRightBold sp-field-borderRightSolid sp-field-borderLeftSolid','sp-field-borderNone'))))"
修复点:
- 补充缺失的两个闭合括号,确保IF语句结构完整
- 空值判断增加
[$ReminderStatus]==null,覆盖字段为null的场景 - 保留原有边框样式逻辑,仅修正语法和空值判断逻辑
内容的提问来源于stack exchange,提问作者EPStudio
相关产品推荐
相关产品推荐

