+1 800 256 3608 (toll-free in North America) or +49 7531 9060-10| service@combit.com

Exists, Evaluate und Nullsafe

Hallo,

mir werden unter “Varibalen/Felder:” beim Einfügen von Berichts-Tabellen unter “Felder” / “Table” dann mögliche Datenfelder angezeigt, wenn diese im Datensatz tatsächlich vorhanden sind.

Als bsp. Table.Kunde. Gibt es den Datensatz “Kunde” mit all seinen Unterpunkten, kann ich den prima verwenden. Ich möchte jetzt zu einem Dokument denkbare Adressfelder als “Benutzervariable” hinterlegen. Also @Adresse_Kunde, @Adresse_ Lieferant, etc. Das hatte ich mir wie folgt gedacht:

(if(Exists(“Table.Kunde.Anrede”),
If(Table.Kunde.Anrede !=“0”,Table.Kunde.Anrede+" “)))
+
(if(Exists(“Table.Kunde.Titel”),
If(Table.Kunde.Titel !=“0”,Table.Kunde.Titel+” “)))
+
(if(Exists(“Table.Kunde.Vorname”),
If(Table.Kunde.Vorname !=“0”,Table.Kunde.Vorname+ " “)))
+
(if(Exists(“Table.Kunde.Name”),
If(Table.Kunde.Name !=“0”,Table.Kunde.Name+”¶”)))
+
(if(Exists(“Table.Kunde.Strasse”),
If(Table.Kunde.Strasse !=“0”,Table.Kunde.Strasse+"¶")))
+
(if(Exists(“Table.Kunde.Postleitzahl”),
If(Table.Kunde.Postleitzahl !=“0”,Table.Kunde.Postleitzahl + " ")))
+
(if(Exists(“Table.Kunde.Ort”),
If(Table.Kunde.Ort !=“0”,Table.Kunde.Ort)))

Das klappt auch, wenn denn ein Datensatz Kunde an LL übergeben wird. Wenn es den nicht gibt, kommt eine Fehlermeldung. Also habe ich versucht mit

If(Exists(“Table.Kunde.Name”),Evaluate(“Table.Kunde .Name”))

als Benutzervariable @Kunde zu arbeiten und es dann mit

if(IsNullOrEmpty(@Kunde)=false,
(if(Exists(“Table.Kunde.Anrede”),… (dann weiter wie oben)

versucht. Hier wird ja ein “true” geliefert, wenn @Kunde leer ist, andernfalls ein false. Dann ist also was da, dann soll was geschrieben werden.

Der Fehler bleibt, weil ja in der Formel “Table.Kunde.XY” abgefragt wird, dass bei LL aber nicht vorkommt.

Hat jemand eine Idee?

© combit GmbH