Da ich nicht weiss, wie der aktuelle Code jetzt aussieht: Mit höchster Wahrscheinlichkeit hat das mit dem Fehler nichts zu tun, aber
_mailempfaenger := User1; SendTo
ist falsch! SendTo erwartet Text oder eine Textliste, also entweder
User1
oder
User1 : SendTo
Die DesignerHelp ist da nun wirklich sehr hilfreich.
Bernhard
1) Bitte nicht Postings modifizieren, wenn schon darauf bezug genommen wurde, da kommen alle durcheinandern. Besser nochmal posten, wenn Du Änderungen vorgenommen hast.
2) Poste bitte RICHTIGEN Code. Der von Dir muss schon bei einem Speicherversuch der Maske im Designer einen Fehler schmeissen.
a) Das If-Statement für den Prompt:
@If ( User11 != User1;
@Return (
@Prompt ( [Ok]; "Info";
"Sie sind nicht Unterschriftsberechtigt, da Sie nicht der richtige Empfänger dieser Mail sind !"
)
);
Hier fehlt
i) Der Else-Zwieg des @If
ii) Die schließende Klammer des @If
b) _mailempfaenger := Name; SendTo;
Sollte _mailempfaenger einen Multivaluewert enthalten, müssen die Werte durch ":", nicht durch ";" getrennt werden.
Wenn Du in _mailempfaenger einen String speichenr willst und in diesem die Werte von name und SendTo durch ein ";" getrennt werden soll, musst Du ein paar Stringoperationen "drüberstreuen".
c) Vergleich "User11 != User1"
Wenn User1 oder User11 Multivalue-felder ist/sind, funktioniert der Vergleich so nicht.
So, vergiss alles, was ich da oben gschrieben habe. Mir graut fürchterliches.
Kann es sein, dass Du "früher" C oder VB oder so etwas programmiert hast? Dann bist Du vermutlich Konstrukte wie
If total = firstnum + secondnum And Val(sum.Text) <> 0 Then
correct.Visible = True
wrong.Visible = False
Else
correct.Visible = False
wrong.Visible = True
End If
gewohnt, bei denen man unterhalb des IF bzw. ELSE mehrere Statements anbringen kann.
Dem ist in @-Formelsprache nicht so. Für die Aktion im IF bzw. ELSE Fall ist genau EINE Aktion vorgesehen.
Dein Plan, das
_mailempfaenger := Name; SendTo;
@MailSend...
in den "ELSE" Zweig zu hängen, kann IMHO so nicht klappen. Dafür willst Du Dir @Do ansehen.
Oder Du ziehst alle "Berechnungen", die Du für das @MailSend brauchst aus dem @ELSE-Zweig vor das @IF.
Irgendwie kommt hier immer mehr syntaktisch falsches zum Vorschein!
_mailempfaenger := Name; SendTo;
Das sind zwei getrennte Formel-Terme! Das Zeichen ";" trennt Parameter (hier nicht erforderlich und daher komplett falsch).
Ich vernmute mal, dass der Inhalt der Felder "Name" und "SendTo" der Variablen "_mailempfaenger" zugewiesen werden sollen.
Und das müsste dann heissen:
_mailempfaenger := Name: SendTo;
Ich empfehle das gründliche Studium der DesignerHelp.
Bernhard
So, ich hab mir das jetzt mal im Detail herausgeholt:
01 @If( User11 != User1;
02 @Return (@Prompt ([Ok]; "Info"; "Sie sind nicht Unterschriftsberechtigt, da Sie nicht der richtige Empfänger dieser Mail sind !"));
03 _mailempfaenger := Name;
04 SendTo;
05 @MailSend(_mailempfaenger; ""; ""; "Urlaubsantrag"; "Sie erhalten soeben die Bestätigung od. Ablehnung Ihres Urlaubsantrages." + @NewLine + "Bitte klicken Sie auf die Verknüpfung um das Dokument zu öffnen."; ""; [IncludeDoclink]);
06 @PostedCommand([FileSave]);
07 @PostedCommand([FileCloseWindow])
08 )
Dieses @IF-Konstrukt ist durchaus "valide", Bernhard, auch wenn dies a) nur durch Zufall und b) haarstäubend ist.
Es besagt nämlich aus, dass
a) Wenn User11 != User1 (Zeile 01) ist, der @Return Befehl in Zeile 02 ausgeführt wird
b) Wenn die ZUWEISUNG "_mailempfaenger := Name;" in Zeile 03 erfolgreich ist, "das Feld SendTo 'ausgeführt'" wird (Zeile 04, was immer dann auch passiert)
c) Wenn der @MailSend-Befehl in Zeile 05 erfolgreich war, wird @PostedCommand([FileSave]); (Zeile 06)ausgeführt
d) Wenn das alles nicht klappt, wird - als ELSE - @PostedCommand([FileCloseWindow]) in Zeile 07 ausgeführt.
Syntaktisch korrekt, inhaltlich komplett gaga. ;D ;)