Hallo Leute,
Ein Teil der Felder in meinen Form sollen über eine Dialogbox gefüllt werden.
Leider bekomme ich für ein/die Felder den falschen/keinen Wert zurückgeliefert.
Hier mal der Aufruf der Dialogbox:
REM{Alle relevanten Felder leer machen};
@SetField("tmp_Land"; "");
@SetField("tmp_BLZ"; "");
@SetField("tmp_KontoNr"; "");
@SetField("tmp_Institut"; "");
@SetField("tmp_BIC"; "");
@SetField("tmp_IBAN"; "");
@SetField("F_RBZ_VZweckVar"; "");
@SetField("F_RBZ_VZweckFest"; "");
@SetField("tmp_DialogAnswer"; "Cancel");
@Command([ViewRefreshFields]);
REM {Dialogbox aufrufen};
@DialogBox("(Konto)"; [AutoHorzFit] : [AutoVertFit] : [NoCancel] : [NoNewFields] :[SizeToTable] : [NoOkCancel]; "Neues Konto anlegen");
REM {Ergebnis auswerten und bearbeiten};
@If(tmp_DialogAnswer = "OK";
@Do(
entry := tmp_Land + "~" + tmp_BLZ + "~" + tmp_KontoNr + "~" + tmp_Institut + "~" + tmp_BIC + "~" + tmp_IBAN + "~" +F_RBZ_VZweckVar + "~" + F_RBZ_VZweckFest;
@Prompt([Ok]; "Debbuig"; entry);
lastperson_1 := @If( Kontolistenum = ""; 0; @TextToNumber( @Subset( Kontolistenum; -1 ))) + 1;
lastperson := @If( lastperson_1 < 10; "0" + @Text(lastperson_1); @Text(lastperson_1));
itemnum := @Trim( Kontolistenum : lastperson );
@SetField("Kontoliste"; @Trim(@Unique(Kontoliste : entry)));
@SetField("Kontolistenum"; @Subset(itemnum; @Elements(Kontoliste)))
);
"");
REM{Felder wieder zurücksetzen};
@SetField("tmp_Land"; "");
@SetField("tmp_BLZ"; "");
@SetField("tmp_KontoNr"; "");
@SetField("tmp_Institut"; "");
@SetField("tmp_BIC"; "");
@SetField("tmp_IBAN"; "");
@SetField("F_RBZ_VZweckVar"; "");
@SetField("F_RBZ_VZweckFest"; "");
@Command([ViewRefreshFields])
hier das erste Problemfeld tmp_DialogAnswer. Wenn ich den Dialog aufrufe, wird das Feld auf "Cancel" gesetzt. Wenn der User auf Ok klickt, wird das Feld korrekt auf "OK" gesetzt.
Hier mal der Code für den OK-Button in der Dialogbox:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
If uidoc.FieldGetText("tmp_Land") = "" Then
Messagebox "Sie müssen ein Land auswählen", 16, "Fehler"
Elseif uidoc.FieldGetText("tmp_BLZ") = "" Then
Messagebox "Sie müssen ein BLZ eingeben", 16, "Fehler"
Elseif uidoc.FieldGetText("tmp_KontoNr") = "" Then
Messagebox "Sie müssen ein Kontonummer eingeben", 16, "Fehler"
Elseif uidoc.FieldGetText("tmp_Institut") = "" Then
Messagebox "Sie müssen ein Institutnamen eingeben", 16, "Fehler"
Else
Call uidoc.FieldSetText("tmp_DialogAnswer", "OK")
Messagebox uidoc.FieldGetText("tmp_DialogAnswer") , 48, "Debbug"
uidoc.Close
End If
End Sub
Der Code ist mit Absicht in Script!, habe es erst mit Formel versucht, da wurde aber tmp_DialogAnswer gar nicht auf "OK" gesetzt.
Wenn ich aber jetzt zurück in dem Form bin, also nach dem Aufruf der Dialogbox, steht tmp_DialogAnswer immer noch/wieder auf "Cancel".
Alle anderen Felder werden auch nicht auf die eingegebenen Werte gesetzt.
Das aufrunfende Form befindet sich im Edit-Modus und die Dialobbox besitzt die Eigenschaft "Formulas inherit values...." Der OK-Button in der Dialogbox steht auf Type = OK. Habe es auch schon mit Type=Normal versucht. kommt aber auf das selbe raus.
Sieht einer von Euch den Fehler???
Gruß
Zsolt