这个网站上到处都有这个问题的答案提示,但我问的是一个稍微不同的问题。
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;如果表达式为 False,则返回 falsePart。返回值的类型与 truePart 和 falsePart 的类型相同。
我想如果你盯着关于“返回值的类型”的那一行,你可以得到它,但是......