Das Notes Forum
Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: Lancelot am 30.10.15 - 12:24:23
-
Hallo Leute,
ich hab schon gesucht aber irgendwie finde ich hier nichts.
Ich kann mir nicht vorstellen, dass dieses Thema hier noch nicht behandelt wurde, aber ich verzweifle fast schon.
Folgende Problem indem ich etwas geistige Unterstützung bräuchte wäre:
Ich habe in einem Doc eine eingebettete Ansicht und ich öffne dort auch ein Doc aus der Ansicht.
Beim Schließen dieses Doc's das ich ja aus der Ansicht geöffnet habe, soll das Dokument das darunter liegt, also das Doc welches die eingebettete Ansicht enthält ebenfalls geschlossen werden.
Leider kriege ich das nicht hin, denn das Dokument mit der eingebetteten Ansicht wird nicht geschlossen.?
Ja jemand eine Idee wie ich die Sache angehen kann?
Bin für echt jede Idee dankbar.
-
Müssen beide Dokumente gleichzeitig offen sein? Falls nicht, könntest Du im QueryOpenDocument der eingebetteten Ansicht versuchen, das CurrentDocument zu schließen
-
Moin
Eine Möglichkeit wäre das eingebettet Dokument via Dialogbox zu öffnen.
-
Danke Peter und danke Umi für die schnelle Antwort.
Das Problem tritt in einer Ticket-DB auf.
Dort öffnet der MA ein Ticket und in diesem Ticket sind ein oder mehrere Aufgaben sichtbar die im Dokument über eine eingebettete Ansicht angezeigt werden.
Die Aufgaben werden also im Ticketdokument geöffnet, bearbeitet und wieder geschlossen, darum wird das Ticketdokument immer noch offen gehalten.
Bisher war das auch jetzt kein Problem, doch jetzt möchte man, dass wenn alle Aufgaben im Dokument erledigt sind, dass nach dem schließen der letzten erledigten Aufgabe
auch das Ticketdokument geschlossen wird, weil man dem User nicht zumuten kann, das Ticket über einen Klick auf den Button "Ticket erledigen" ebenfalls zu erledigen.
@Umi:
Dialogbox wäre eine Lösung, doch leider dürfen wir Entwickler den User nicht mit Dialogboxen zu spamen, deswegen haben wir die Ansage bekommen, von Dialogboxen abzugehen.
Dialogboxen werden leider nur für Namensauswahlen bei Berechtigungen oder Emailversand gestattet.
Ich bin auch nicht davon begeistert, aber die Entscheidung haben eben damals andere getroffen.
Gibt es sonst keine Möglichkeit das Ticketdokument danach auch automatisch zu schließen?
-
Ich würde bei dem QueryOpenDocument der eingebetteten Ansicht bleiben. Dort merkst Du Dir irgendwo (Profildokument?) die UniversalID des Tickets (vielleicht in Kombination mit der ID des zu öffnenden Dokuments, um kein Chaos zu bekommen, wenn mehrere Tickets gleichzeitig offen sind).
Beim Schließen der Aufgabe musst Du überprüfen, ob das die letzte Aufgabe war und dann das Ticket über Script so öffnen, dass es nicht doppelt geöffnet wird (da musst Du etwas suchen, ein Workspace.EditDocument öffnet es m.W. doppelt). Dann hast Du das Ticket als uidoc und kannst es wieder schließen.
U.U. brauchst Du das QueryOpenDocument auch nicht, wenn Du von der Aufgabe eindeutig auf das Ticket schließen kannst.
Falls das Ticket während der Bearbeitung der Aufgabe NICHT offen sein muss, kannst Du es auch beim Öffnen der Aufgabe schließen und beim Schließen der Aufgabe wieder öffnen (wenn noch mehrere Aufgaben zu dem Ticket bestehen), da würde ich aber im QueryOpenDocument ein entsprechendes Flag setzen, damit das nur erfolgt, wenn die Aufgabe über die eingebettete Ansicht geöffnet wird, sonst öffnet das Schließen einer Aufgabe immer das Ticket, auch wenn sie direkt geöffnet wurde.
-
Zusatz zu Peter:
Das müsste mit notesuiworkspace.editdocument gehen, der letzte Parameter ist [NewInstance]. Ist dieser False, dann geht der Fokus auf das schon existierende offene Dokument.
Bye,
Markus
-
Ja, das geht theoretisch mit dem Parameter False, jetzt kommt das große "ABER": wurde das Dokument seit dem Erstellen nicht mindestens einmal geschlossen und wieder geöffnet, dann ist der Parameter vollkommen egal: dann geht IMMER eine neue Instanz auf... Und da "drumrum"- zu programmieren ist saumässig aufwändig...
-
Du musst im Initialize der Maske, des Dokumentes welches du aus der eingebetteten Ansicht öffnest, dir eine globale UiDoc-Variable mit notesuiworkspace.currentDocument sichern. Das ist das Parent-Dokument der eingebetteten Ansicht - wenn es daraus aufgerufen wurde. Beim QueryClose kann es dann mit geschlossen werden :-)
Gruß Erik
-
Guten Morgen
und danke an alle Ratgeber.
Ich habe es über die Universal-ID hinbekommen.
Die Auftragsgeber sind damit auch restlos zufrieden.
Also nochmals Danke an Euch Jungs- ;-)