在这个网站上,这里和那里有关于这个问题的答案有一些提示,但我提出了一个稍微不同的问题。水晶报告公式:IsNull + Iif
Crystal Reports如何证明此语法不起作用?
Trim({PatientProfile.First}) + " "
+ Trim(Iif(
IsNull({PatientProfile.Middle})
, Trim({PatientProfile.Middle}) + " "
, " "
)
)
+ Trim({PatientProfile.Last})
我知道解决的办法是
If IsNull({PatientProfile.Middle}) Then
Trim({PatientProfile.First})
+ " " + Trim({PatientProfile.Last})
Else
Trim({PatientProfile.First})
+ " " + Trim({PatientProfile.Middle})
+ " " + Trim({PatientProfile.Last})
但我们应该如何找出我们不能使用第一个版本?
为ISNULL文档说
- 评估了当前记录中指定的字段,如果该字段包含空值
返回TRUE和IIF给
- [返回]如果表达式为True,则truePart,如果expression为False,则为falsePart。返回值的类型与truePart和falsePart的类型相同。
我想,如果你盯着这行约“类型的返回值”你可以得到它,但是......
我没有CRXI今天简洁,但是并不了解的第一个工作?它是否会让间距错误(这是代码中的逻辑错误 - 您有一个额外的Trim())或者以其他方式失败? – Stobor 2009-02-10 22:58:57
对于.Middle为NULL的记录,CR无法评估Trim(.Middle)中的字符串值,并且决定Iif的值为NULL,即使我在那里有显式测试。 – SarekOfVulcan 2009-03-04 17:30:29