Schliessen eines nicht aktiven Dokumentes

  • Folgendes Problem:
    Datenbank 1/Maske A öffnet per Button Datenbank 2/Maske B, diese üernimmt Werte aus der Maske A.
    Wie kann ich im Postopen oder Querysave der Maske B das Dokument der Maske A (nach auslesen der Werte) schliessen? Gibt es da eine Lösung in der Formelsprache oder in LotusScript?
    Anders formuliert:
    Wenn - aus welchem Grund auch immer- Dokumente nur
    gespeichert, aber nicht geschlossen werden, so werden diese
    in Notes in der oberen Taskleiste angezeigt, wobei jeweils nur
    ein Dokument aktiv ist. Wie können nun die "nicht-aktiven"
    Dokumente per Formel/Script geschlossen werden?
    Danke für Eure Beiträge!
    Eves :sunclaus:

  • Hallo,


    ich würde es so machen, dass Maske A vor dem Öffnen von Maske B einen INI-Parameter setzt mit Angabe von
    "Server!!Datenbank;UniversalID".


    Im Postopen der Maske B kann dann der INI-Parameter ausgelesen werden, per Script das Dokument im Hintergrund referenziert und dann geschlossen werden. Anschließend sollte man den INI-Parameter unbedingt leeren, damit der Postopen nicht versehentlich zieht, wenn die Maske gar nicht von einer anderen aufgerufen wurde.


    Ich hoffe, dass hilft Dir weiter?!?


    Gruß
    Thomas Heiner ;)
    http://www.tgh-online.de

  • Hi,


    das geht in Script ganz einfach.
    Ich hab eine Anwendung in der brauche ich bestimmte Dokumente nur um damit in einer Ansicht etwas anzuzeigen. Wenn jemand draufklickt soll stattdessen ein anderes Dokument geöffnet werden.
    So geht's:


    Sub Postopen(Source As Notesuidocument)
    'Hier soll verhindert werden, dass das Dokument überhaupt geöffnet werden kann.
    'Stattdessen soll auf das übergeordnete Protokoll weitergeleitet werden.
    'Basisdeklarationen
    Dim session As New NotesSession
    Dim uiws As New NotesUIWorkspace
    'Objektdeklarationen
    Dim db As NotesDatabase
    Dim ddoc As NotesDocument
    Dim sdoc As NotesDocument
    Dim uidoc As NotesUIDocument
    'Variablendeklarationen
    Dim uid As String
    'Start
    Set sdoc = Source.Document 'Back-End Instanz des UIDOCs öffnen
    uid = sdoc.Ft_ParentID(0) 'DocUniqueID des Protokolls auslesen
    Set db = session.CurrentDatabase 'Objekt für die aktuelle Datenbank anlegen
    Set ddoc = db.GetDocumentByUNID(uid) 'Das Protokoll anhand der DocUniqueID finden
    Set uidoc = uiws.EditDocument(False, ddoc, False) 'Das Protokoll ins UI holen
    Call Source.Close
    End Sub