So, ich habe noch einmal alles Mögliche ausprobiert. Folgendes funktioniert: Keine Standardwerte für das entsprechende Feld setzen. Dann alle abhängigen Felder einzeln auf null prüfen. Erst dann das Feld mit dem berechneten Wert füllen.
def defaultwert = new java.math.BigDecimal(0.0)
def einkaufspreis = context."#{JAE5.Artikel.einkaufspreis}"
def skontoinprozent = context."#{JAE5.Artikel.lieferantenskontoinprozent}"
if ((skontoinprozent == null) || (einkaufspreis == null))
{
return defaultwert.setScale(4, java.math.RoundingMode.HALF_UP).doubleValue()
}
else
{
return context."#{JAE5.Artikel.einkaufspreis}" * context."#{JAE5.Artikel.lieferantenskontoinprozent}" / 100
}
Sieht im Nachhinein ganz einfach aus…
Viele Grüße
skoeper