Hallo,
ich versuche mich gerade an einer Anwendung, mit der Checklisten verwaltet und ausgefüllt werden können. Meine Idee war, die einzelnen Fragen einer Checkliste in Form von einzelnen Dokumenten anzulegen und diese dann via Dialogbox durch die Anwender ausfüllen zu lassen. D.h. beim Start der Funktion wird für den Anwender ein Set Dokumente angelegt und das erste aus der Reihe öffnet sich in einer Dialogbox.
Und jetzt fangen die Probleme an.
Ich habe keine Möglichkeit gefunden, in der Dialogbox ein neues Dokument zu öffnen. Daher wird man vermutlich das Dokument schließen müssen und anschließend das nächste Dokument in der Reihe in einer neuen Dialogbox öffnen.
Aufruf erste Dialogbox:
Call ws.DialogBox("CLDialog",True,True,True,False,False,False,"Checkliste",firstdoc,False,True,False)
In der Dialogmaske habe ich eine eigene Schaltfläche hinzugefügt, die einfach nur ein Close absetzt :
Dim ws As New NotesUIWorkspace
ws.CurrentDocument.Close
Im QueryClose der Maske für die Dialogbox habe ich ein NotesUIWorkspace.RefreshParentNote() eingebaut, um die Eingabewerte in das Backend zu schreiben. Das funktioniert aber nicht, die Werte im Dokument bleiben unverändert.
Im Aufruf der Dialogbox habe ich die Änderung aber zugelassen (siehe oben) und die Feldnamen in der Dialogmaske sind identisch zu denen in der Dokumentmaske.
In den Dokumenten gibt es eine Indexnummer für die Reihenfolge der Fragen. Ich wollte jetzt im QueryClose der Dialogbox die aktuelle Indexnummer abgreifen, die nächste ermitteln (soweit vorhanden), darüber das entsprechende Dokument holen und in einer neuen Dialogbox öffnen.
Funktioniert natürlich nicht. Das fliegt mir mit der Meldung "NotesUIDocument object is no longer valid." um die Ohren. Ich vermute, es passiert an dieser Stelle :
Set doc = Source.Document
docindex = doc.GetItemValue("CL_E_SortOrder")(0)
Ansonsten wird das UIDocument im QueryClose gar nicht angefaßt.
Zwei Fragen :
1) Hat jemand eine Idee, warum die Werte nicht ins Backend zurückgeschrieben werden ? Wenn ich die Designer-Hilfe richtig verstehe, ist RefreshParentNote ja genau dafür gedacht.
2) Ist das mit der Verkettung der Dialogboxen so überhaupt möglich ? Oder bin ich mit der Idee völlig auf dem Holzweg ?