Wenn ich die Aufgabe richtig verstanden habe, könntest du es evtl. über Variablen lösen.
Etwa so:
tmp1 := @If(Feld2!="";Feld2;Feld1);
tmp2 := @If(Dialogfeld = "ja";tmp1;0);
tmp3 := @If(tmp2>0 & tmp2<250;250;tmp2);
tmp3
Du musst halt nacheinander die ganzen Bedingungen abprüfen.
HTH
Bille
Ja, das sieht in Script ziemlich ähnlich aus:
Dim tmp1 As Double, tmp2 As Double , tmp3 As Double
If doc.Feld2(0) = "" Then
tmp1 = doc.Feld1(0)
Else
tmp1 = doc.Feld2(0)
End If
If doc.Dialogfeld(0) = "ja" Then
tmp2 = tmp1
Else
tmp2 = 0
End If
If tmp2 >0 And tmp2 < 250 Then
tmp3 = 250
Else
tmp3 = tmp2
End If
doc.Ergebnis = tmp3
Das geht bestimmt noch irgendwie kürzer und schöner, aber das Resultat sollte das gleiche sein ...
Den Datentyp für die Variablen musst Du entsprechend Deiner Werte anpassen. Welcher wofür passt, findest Du in der Hilfe unter "data types".
So hier einmal mein Versuch. Ich habe das mal so gelernt m dass die Bedingungen so seperat formuliert werden müssen, hatte mal ein ähnliches Problem.
@IF( A != "" | B!="" | C! = "" | D != "" ; Feld X ; "");
@IF( A != "" & H != ""| B!="" & H != ""| C! = "" & H != ""| D != "" & H != "";Feld Y;"");
@IF( A != "" & I != ""| B!="" & I != ""| C! = "" & I != ""| D != "" & I != "";Feld Z;"");
@IF( E != "" | F "= "" ; 0 ; "");
@IF( G != "" ; Feld w ; "" );
@IF( x < 250 | y < 250 | z < 250 ; 250 ; "" );