Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: cash am 26.04.07 - 13:52:29
-
Ich habe ein kleines Problem:
In einer Aktion habe ich folgende Zeilen:
@If(@IsDocBeingEdited=1;"";@Command([EditDocument]));
_161 := "hier steht was";
_Name := Name_1;
_Leser := @If(Dokumentenstatus = "1"; "Alle" : Name_1 : Bereichsleiter : Vertreter ; Name_1 : Bereichsleiter : Vertreter);
FIELD Leser := _Leser;
FIELD Status := "4";
FIELD DatumGenehmigt := @Now;
FIELD Freigeber := @Name([CN];@UserName);
FIELD VetoSave := "1";
@Command([FileSave]);
@MailSend(_161 ; "" ; "" ; "Anforderungen " ;"Sehr geehrte Damen und Herren,"
+@NewLine+@NewLine
+"Text"
; "";[IncludeDoclink]);
FIELD Autoren := "[SQL]";
FIELD VetoSave := "1";
@If(@Command([FileSave]);@Do(@Command([CloseWindow]));@StatusBar("Speichervorgang fehlgeschlagen"))
im Quersave:
....
If strKurzbeschreibung = "" Then
Source.FieldClear("VetoSave")
Call source.fieldsettext("Status","0")
Call source.fieldsettext("Autoren",strName_1)
Msgbox "Bitte füllen Sie die Kurzbeschreibung aus...", 16, "Hinweis"
Continue = False
Goto Ende
....
Wenn ich jetzt das Feld Kurzbeschreibung nicht ausgefüllt habe und drücke den Button wird folgerichtig nicht gespeichert sondern es kommt die MsgBox...
Dumm ist das die 2 x mal kommt, da im Button auch 2 mal speichern steht. Wenn ich das Dokument aber nicht abspeicher kann ich auch nicht die Mail mit der Verknüpfung verschicken. Ein Teufelskreis ;-))
Gibt es einen Ausweg?
Gruß
Thomas
-
Ja die Abfrage @if(@command([FileSave]) ... bereits beim ersten Speichern ggf mit @return(void) verlassen, wenn das QuerySave schief geht.
Gruß
André
-
wofür steht denn das (void)
habe ich in der Hilfe nicht gefunden?
Thomas
-
void steht für "gar nichts" im wahrsten Sinne des Wortes.
Du kannst aber auch ohne weiteres ein @Return ("") oder ein @Return (0) verwenden (das steht dann auch in der Doku ;)).
Bernhard
-
ein neues Problem ist aufgetaucht:
Ich habe eine Optionsschaltfläche mit 2 Werten und Alias 1 und 2.
Im Quersave frage ich darauf ab doch leider ist ihm egal ob ich die Optionsschaltfläche "Arbeitsauftrag" mit dem Wert 1 befülle oder nicht.
Bzw. sofern ich dort garnichts ausfülle meckert er folgerichtig nur wenn ich es ausfülle zieht das unter Ende1 leider nicht.
Woran liegt das wohl?
Der Code im Queryclose:
....
Elseif strArbeitsauftrag = "" Then
Source.FieldClear("VetoSave")
Call source.fieldsettext("Status","0")
Call source.fieldsettext("Autoren",strName_1)
Msgbox "Ist der Arbeitsauftrag schon an die SI geschickt worden? Bitte füllen Sie das Feld aus..", 16, "Hinweis"
Continue = False
Goto Ende1
.....
Ende1:
If strArbeitsauftrag = "1" And strARSSI = "" Then
Source.FieldClear("VetoSave")
Call source.fieldsettext("Status","0")
Call source.fieldsettext("Autoren",strName_1)
Msgbox "Bitte Ticket-Nr ergänzen...", 16, "Hinweis"
Continue = False
Goto Ende
Elseif strArbeitsauftrag = "1'" And strANRSI = "" Then
Source.FieldClear("VetoSave")
Call source.fieldsettext("Status","0")
Call source.fieldsettext("Autoren",strName_1)
Msgbox "Bitte Auftrags-Nr ergänzen...", 16, "Hinweis"
Continue = False
Goto Ende
End If
Ende:
....
Gruß
Thomas
-
Womit befüllst du strArbeitsauftrag?
-
mit der Optionsschaltfläche Arbeistauftrag
per
DIm strArbeitsauftrag As String
strArbeitsauftrag = Source.FieldGetText("Arbeitsauftrag")
Das sollte ja laufen denn sonst würde er bei
strArbeitsauftrag = "" nicht die MsgBox bringen. (Also dann wenn ich die Optionsschaltsfläche nicht anfasse)
Unter Eigenschaften steht auch beim Feld Arbeitsauftrag "1" sofern ich den ersten Eintrag auswähle...
Gruß
Thomas
-
Aliasse sind nicht über die Frontendklassen zu sehen. An dieser Stelle müsstest du mit dem tatsächlich vorhandenen Wert arbeiten. Das kannst du im Debugger auch so beobachten...
-
Super das wars...