在這個網站上,這裏和那裏有關於這個問題的答案有一些提示,但我提出了一個稍微不同的問題。水晶報告公式: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