Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: zhermann am 10.12.04 - 10:57:31
-
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
-
Hi,
auf den ersten Blick sehe ich keinen Fehler.
Was mir aufgefallen ist, ist das hier:
...und die Dialobbox besitzt die Eigenschaft "Formulas inherit values...."
Das brauchst du bei einer Dialogbox eigentlich nicht. Nimm mal diese Option weg, vielleicht ändert sich was. Was andere fällt mir im mment nicht ein.
Hast du eine Chance mal einen Rumpf der DB (die Maske und der Dialog reicht) hier anzuhängen?
Axel
-
Hallo,
nein leider nicht.
Habe jetzt alles auf Script umgestellt.
Komme irgendwie damit besser klar.
Gruß
Zsolt
-
Versuchs mal mit
call ws.RefreshParentNote( )
Danach sollten die Werte auch im "aufrufenden Dokument" verfügbar sein.
Andreas
-
Hallo Andreas,
hatte ich auch schon versucht, ohne Erfolg.
Wie gesagt, ahbe jetzt alles auf Script umgestellt.
Jetzt läuft es super.
Gruß
Zsolt