Hi,
in einer Anwendung bräuchte ich den ws.Editdocument eigentlich wie einen modalen Dialog, d.h. dass das Script wartet, bis das Dokumentfenster wieder geschlossen wurde.
...
ws.Editdocument .....
msgbox "Dokument wird weiter verarbeitet"
....
Lotus Notes scheint das aber so nicht vorgesehen zu haben. Als nächste Lösung hatte ich dann mit den verschiedenen Events der Maske experimentiert (QueryClose, Postsave, Terminate), aber die Schwierigkeit hierbei ist, dass man innerhalb dieser Events teilweise Caching-Probleme hat, wenn das gleiche Dokument erneut geöffnet werden muss, Dialogmasken angezeigt etc., weil das Documentobjekt noch nicht aus dem Speicher entfernt ist.
Gibt es da ein Event / Timer oder ähnliches um danach wieder in den Programmablauf einzusteigen?
Gruß Klaus
Hallo Peter,
danke für die Antwort. So ähnlich habe ich es auch gemacht, nur dass beim 2. EditDocument die Felder wieder im Ursprungszustand angezeigt wurden, wie es das Backend beschrieben hat.
Bei einer Testmaske hat es jetzt aber funktioniert, so dass ich am suchen bin, wo der Cache mir das alte Dokument wieder herzaubert.
Der Loop funktioniert schon mal:
Dim se As New Notessession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim unid As String
Set uidoc = ws.CurrentDocument
If uidoc.EditMode Then
uidoc.Save
End If
unid = uidoc.Document.UniversalID
uidoc.Close True
Delete uidoc
Set uidoc = Nothing ' Doppelt hält besser ;)
Set doc = se.CurrentDatabase.GetDocumentByUNID(unid)
Set dialogdoc = se.CurrentDatabase.createdocument
ws.DialogBox "Testdialog", True, True, False, False, False, False, "bla bla bla", dialogdoc, True
ws.EditDocument True, doc
Unschön ist, dass bei der DialogBox das UIDoc im Hintergrund immer noch offen ist, obwohl beim .Close das True für Sofortige Schließung angegeben ist, aber zur Not kann man damit leben...
Ich analysiere noch die Unterschiede und gebe Bescheid, wo die alte Fassung des Dokumentes her kommt.
So, die ganze Sache läuft nun und es ist ein für mich unerklärliches Phänomen...
Funktioniert nicht:
Ws.Editdocument True, MeinClassObjekt.Notesdocument
Funktioniert
Set doc = MeinClassObjekt.Notesdocument
Set MeinClassObjekt.Notesdocument = Nothing
ws.Editdocument Editmodus, doc
Die Objektvariable für das Notesdocument wird in einer selbsterstellten Klasse von mir gehalten und das scheint Notes durcheinander zu bringen.
Da versucht man mal ordentlich Objektorientiert zu arbeiten und dann so was....
Vielen Dank für Eure Unterstützung. :knuddel: