Hallo,
ich denke auch, dass das der bessere Weg ist.
Die Datenstruktur sieht so mal ganz gut aus.
Es kommt wohl nur gerade eine Herausforderung was das Handling der Framesets angeht auf mich zu.
Also:
Der Benutzer startet ausgehend von einer View, wo ich die Aktion hinterlegt habe die Suche. Der Code sucht und sucht, schiebt am Ende eine DocumentCollection in den Folder (der vorher geleert wurde).
Nun wollte ich den Folder öffnen. Der landet dann aber ausserhalb meines eigentlichen Framesets. Daher habe ich mein existierendes Frameset kopiert und in den Main Frame den Folder gestellt und öffne nun den neuen Frameset:
Call uiws.Openframeset("SearchResult_View")
Nun schliesse ich noch meine vorhergehende Ansicht, damit das ursprüngliche Register vom Notesclient verschwindet.
Da der Folder die gleichen Aktionen wie die Ansicht hat, kann der Benutzer nun ausgehend von dem Folder wieder Suchen starten. Klappt soweit super.
Nun gibt es hier aber auch links die Navigation. Und nun kommts.
Wenn der Benutzer aus dem Frameset des Suchergebnis auf die Navigation klickt (Punkt Contacts), wird im Mainframe wieder die Ausgangsansicht angezeigt, so als wenn er die Datenbank das erste mal geöffnet hat.
Aber wenn ich hier nun erneut die Suche starte, geht die komplette Datenbank zu. D.h., es wird nicht mehr der Frameset für die Ergebnismenge geöffnet, obwohl der Code ausgeführt wird.
Kommt das Userinterface hier irgendwie mit dem Focus durcheinander?
Jetzt habe ich mal meinen Frame, wo die Outline drinnen ist mit "NotesNavigator" benannt und den Frame, wo die Ansicht/der Folder drin landen soll "NotesView".
Am Ende meines Agents sieht es nun so aus:
Call doccolDest.Putallinfolder(vResultFolder, True)
Call uidb.Openview(vResultFolder)
Dabei ist vResultFolder die Variable, wo der Name des Folders drin steht.
Es wird zwar der Folder geöffnet, aber ein neues Register in Notes. Gehe ich in der Navigation wieder auf meine Ansicht, kommt noch ein weiteres Register dazu.
Habe ich da noch etwas übersehen?
Bzw. ist diese "Namenskonvention" für die Rahmen von IBM irgendwo zu finden?
Die Hilfe und Google haben mich da nicht ans Ziel gebracht.
Jetzt scheint es zu klappen. So richtig weiss ich allerdings nicht warum.
Im Frameset heisst der Frame, wo die Outline drin steht "Outline" und der Content Frame heisst "NotesView"
Die letzten Zeilen des Agenten sehen so aus:
Call doccolDest.Putallinfolder(strUIView, True)
If strUIView <> strSrcView Then
Call uidb.Openview(strUIView)
Call uiview.Close()
End If
D.h. erst werden alle Dokument in den Folder geschoben und dann wenn die aktuelle Ansicht ungleich der Ansicht ist, wo ich die ursprüngliche Suche gestartet habe, mache die "alte" Ansicht zu.
Klappt auch. Es flackert zwar mal in Notes, wenn die alte Ansicht geschlossen wird, aber nun geht die DB nicht mehr zu, wenn ich in der Outline auf die Ansicht klicke und dann suche.