Dokument per Skript öffnen

  • Guten Morgen,


    ich hatte gestern bei einem kleinen Test meiner Auktions-Datenbank einen totalen error, wenn zwei personen gleichzeitig eine Ansicht Refreshen (@command([toolsrefreshalldocuments]) )kommt es zum totalen Absturz von Notes.


    Daher möchte ich jetzt eine Ansicht so umbiegen das sie mir die Daten aus dem zweiten Dokument anzeigt (das Dokument in dem die Daten gespeichert sind ) aber die Dokumente, die ich für die Ansicht erstellt habe anzeigt.


    Ein bisschen habe ich schon, aber leider nicht sehr viel.


    Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim doc2 As NotesDocument
    Dim uidoc As NotesUIDocument
    Set db = session.CurrentDatabase
    Set view = db.GetView( "Angebote_Auktion" )
    Set doc = view.GetFirstDocument



    Ich bin mir hier nicht sicher ob ich damit auch das aktuelle Dokument bekomme, auf das ich doppelt geklickt habe um es zu öffnen.
    Dim docs As NotesDocumentCollection
    Set docs = Source.Documents
    Set doc2 = docs.GetFirstDocument[/i}



    [i]While Not( doc Is Nothing)
    If doc2.UniversalID = doc.Schlüssel Then
    Set uidoc2 = uiws.EditDocument(True, doc)
    End If

    Wend
    End Sub



    Gruß und Dank
    Christian

  • Was du da machst ist ja nicht ein Refreshen der Ansicht sondern eine komplette Neuberechnung aller Dokumente in der Datenbank.


    Und wenn das zwei gleichzeitig machen, gibt es im günstigen Fall lauter Speicherkonflikte oder eben deinen beschriebenen Absturz.


    In einer Ansicht kannst du immer nur die Daten der Dokumente anzeigen, die auch in der Ansicht per Auswahlformel ausgewählt sind.

  • Das habe ich ja auch vor, die Daten sind bei mir in einem anderen Dokument gespeichert als das, auf dem die User Bieten.
    Diese Daten werden mit einem @DBLookup auf das "Biet-Dokument" geladen und dann per Ansicht angezeigt.
    Ohne das neuberechnen der Dokumente bleiben die Daten auf der "Biet-Ansicht" aber alt und sind somit unbrauchbar.


    Daher habe ich jetzt eine Ansicht gebastelt die die Daten aus dem "Daten-Dokument" anzeigt. Nur möchte ich jetzt erreichen das bei einem klickt auf das Dokument nicht das "Daten-Dokument", welches ja eigentlich automatisch geöffnet würde geöffnet wird sondern das "Biet-Dokument"
    Die Verbindung zwischen den Dokumenten ist die UniversalID des "Biet-Dokuments".



    Mir fehlt jetzt vor allem ein Befehl mit dem ich Daten aus dem Dokument, auf das ich doppelt gelickt habe auslese, da ich ja aus diesem Dokument den "Schlüssel" (UniversalID) brauche

  • Danke, dann war ich ja doch auf dem richtigen Weg.
    Hier mal der vollständige Code.



    Sub Queryopendocument(Source As Notesuiview, Continue As Variant)


    Dim session As New NotesSession
    Dim uiws As New NotesUIWorkspace
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim doc2 As NotesDocument
    Dim uidoc As NotesUIDocument
    Set db = session.CurrentDatabase
    Set view = db.GetView( "Angebote_Auktion" )
    Set doc = view.GetFirstDocument


    Dim docs As NotesDocumentCollection
    Set docs = Source.Documents
    Set doc2 = docs.GetFirstDocument


    While Not( doc Is Nothing)
    Redim v_test(0)
    v_test(0) = doc2.Schlüssel(0)
    var2 = doc.UniversalID
    If v_test(0) = var2 Then
    Set uidoc2 = uiws.EditDocument(True, doc)
    End If
    Set doc = view.GetNextDocument( doc )
    Wend
    End Sub



    Gruß und Dank
    Christian