Es gibt Hinweise auf die Antwort auf diese Frage hier und da auf dieser Website, aber ich frage eine etwas andere Frage.Crystal Reports-Formel: IsNull + Iif
Wo dokumentiert Crystal Reports, dass diese Syntax nicht funktioniert?
Trim({PatientProfile.First}) + " "
+ Trim(Iif(
IsNull({PatientProfile.Middle})
, Trim({PatientProfile.Middle}) + " "
, " "
)
)
+ Trim({PatientProfile.Last})
Ich weiß, dass die Lösung
If IsNull({PatientProfile.Middle}) Then
Trim({PatientProfile.First})
+ " " + Trim({PatientProfile.Last})
Else
Trim({PatientProfile.First})
+ " " + Trim({PatientProfile.Middle})
+ " " + Trim({PatientProfile.Last})
ist aber wie sollen wir uns die erste Version nicht, um herauszufinden, verwenden können?
Die Dokumentation für IsNull sagt
- das Feld im aktuellen Datensatz angegeben Wertet und gibt TRUE zurück, wenn das Feld einen Nullwert
und Iif gibt
- [Returns enthält ] truePart, wenn Ausdruck True und falsePart ist, wenn Ausdruck False ist. Der Typ des zurückgegebenen Werts entspricht dem Typ von truePart und falsePart.
Ich nehme an, wenn Sie in dieser Zeile über „Typ des Rückgabewert“ starren Sie es bekommen können, aber ...
Ich habe CRXI nicht praktisch, heute, aber was nicht über die erste nicht funktioniert? Wird der Abstand nur falsch angezeigt (was ein logischer Fehler im Code ist - Sie haben ein zusätzliches Trim() drin) oder schlägt es auf andere Weise fehl? – Stobor
Für Datensätze, in denen .Middle NULL ist, kann CR den Zeichenfolgenwert in Trim (.Middle) nicht auswerten und entscheidet, dass der Wert von Iif NULL ist, obwohl ich diesen expliziten Test dort habe. – SarekOfVulcan