このサイトのあちこちにこの質問に対する答えのヒントがありますが、私は少し異なる質問をしています。
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のドキュメントには
- 現在のレコードで指定されたフィールドを評価し、フィールドにnull値が含まれている場合はTRUEを返します
そしてIifは与える
- [戻り値]式がTrueの場合はtruePart、式がFalseの場合はfalsePart。戻り値のタイプは、truePartおよびfalsePartのタイプと同じです。
「戻り値の種類」についてその行を見つめればわかると思いますが…