Domino 9 und frühere Versionen > ND6: Entwicklung
Dialogbox -> Werte werden nicht zurückgeschrieben
HarryB:
Hallo Forum,
bei der Entwicklung einer Dialogbox bin ich auf ein Problem gestoßen. Ich habe eine Dialogbox, in welcher auch versteckte Felder enthalten sind ($currentStep, $nextStep). Die Werte dieser Felder sollen geändert werden, indem auf eine Schaltfläche ("Weiter") geklickt wird. Die Schaltfläche enthält den folgenden Code:
--- Zitat ---FIELD $currentStep := "1";
FIELD $nextStep := "2";
@Command([RefreshParentNote]);
@PostedCommand([CloseWindow])
--- Ende Zitat ---
Die Werte der Felder vor dem Klick auf die Schaltfläche sind "0" für $currentStep und "1" für $nextStep. Wenn ich die Dialogbox ganz normal als Maske testlaufen lasse, werden die neuen Werte für die Felder korrekt gesetzt. Wenn ich das ganze allerdings per LotusScript in einer Dialogbox laufen lasse, werden die veränderten Werte nicht zurückgeschrieben. Die Werte der Felder sind noch so, wie vor Aufruf der Dialogbox.
Die Dialogbox wird wie folgt aufgerufen:
--- Zitat ---Dim uiws As New NotesUIWorkspace
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim tmpDialogBox As NotesDocument
Dim result As Integer
Set db = ses.CurrentDatabase
Set tmpDialogBox = db.CreateDocument
result = uiws.DialogBox("($dialog)",True,True,True,False,False,False,"Dialogbox",tmpDialogBox,True,True,False)
--- Ende Zitat ---
Eine Überprüfung des Objektes tmpDialogBox per Debugger ergibt für die Felder $currentStep "0" und für $nextStep "1", obwohl ich auf die Schaltfläche "Weiter" geklickt habe, also die Werte, welche für die Felder initial eingestellt sind.
Der Effekt tritt unabhängig davon auf, ob die Felder bearbeitbar sind oder berechnet mit dem eigenen Namen als Wert eingetragen.
Hat jemand eine Idee, wo ich was verkehrt mache? Habt ich überhaupt ausreichend dargelegt, was ich will?
Viele Grüße
Harry
dirk_2909:
Hallo!
Wenn Du die Dialogbox über LS öffnest, musst du die Werte Explicit im Document setzen:
....
Set tmpDialogBox = db.CreateDocument
tmpDialogBox.Deinfeld = ""
result = uiws.DialogBox("($dialog)",True,True,True,False,False,False,"Dialogbox",tmpDialogBox,True,True,False)
if result Then
......
if tmpDialogBox.DeinFeld( 0 ) = "???" Then
.....
uidoc.FieldSettext( "DeinFeld" , tmpDialogBox.DeinFeld( 0 ) )
HarryB:
Hallo Dirk,
genau das ist mein Problem. Der Wert von "DeinFeld" ändert sich nicht nach Aufruf der Dialogbox, und zwar nicht in einem UIDocument, sondern in dem Dokument tmpDialogBox.
Um bei deinem Beispiel zu bleiben: nach dem Aufruf der Dialogbox ist bei mir der Wert von DeinFeld = "", so, wie das Feld initialisiert wurde, obwohl dort etwas anderes drin stehen müsste.
Viele Grüße
Harry
Axel:
Hi,
du hast den Parameter [noOKCancel] auf True gesetzt, d.h. die standardmäßigen Buttons werden nicht angezeigt. Wie schließt du denn die dialogbox?
Axel
HarryB:
--- Zitat von: Axel am 18.08.05 - 15:54:10 ---Wie schließt du denn die dialogbox?
--- Ende Zitat ---
Siehe oben:
--- Zitat ---FIELD $currentStep := "1";
FIELD $nextStep := "2";
@Command([RefreshParentNote]);
@PostedCommand([CloseWindow])
--- Ende Zitat ---
Viele Grüße
Harry
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln