Crystal Reports 11嵌套IF公式报错求助:End If语法问题
Crystal Reports 11 公式语法错误修复方案
你的公式报错根源是Crystal Reports要求公式必须在所有分支都返回明确值,原代码里当{SP_CANCELACIONES;1.STATUSDA}不等于"C"时,没有指定返回内容,导致语法解析失败。
以下是两种修复后的可行写法:
写法一:完整嵌套If结构
If ({SP_CANCELACIONES;1.STATUSDA} = "C") Then If (InStr({SP_REPORTE;1.NUMRESDA}, "H_") > 0) Then "H" ' 对应History表,按需求返回H Else "D" ' 对应Data表,按需求返回D End If Else "" ' 当STATUSDA不等于"C"时返回空值,可根据业务改成其他默认值 End If
写法二:简化IIF函数写法
Crystal Reports支持IIF简化条件判断,代码更紧凑:
IIF({SP_CANCELACIONES;1.STATUSDA} = "C", IIF(InStr({SP_REPORTE;1.NUMRESDA}, "H_") > 0, "H", "D"), "" )
说明
- 按你的需求把原返回的"Historial"和"Datos"替换成了"H"和"D",如果需要保留原文本可自行改回。
- 外层Else的返回值可根据实际业务调整,比如返回"非取消记录"等标识,不一定是空字符串。
内容的提问来源于stack exchange,提问作者NetoXD99
相关产品推荐
相关产品推荐

