eingebette Ansicht Spaltentitel ändern

  • Ich habe in einer Maske eine eingebettete Ansicht, in der je nach
    Auswahl bestimmte Daten aus einer DB2 angezeigt werden sollen.
    Jetzt möchte ich zur Laufzeit die Spaltentitel austauschen.


    Laut Hilfe gibt es die Möglichkeit das Title-Property über
    NotesViewColumn zu ändern.


    Das funktioniert auch , aber halt leider nicht am Frontend, sondern
    im gespeicherten View.


    Wo habe ich meinen Gedankenfehler:



    Set view = db.getview("RECRM_TYRE_002")
    Set doc = view.GetFirstDocument

    Set vc = view.Columns(2)
    vc.Title = "Test-Title"



    Call view.Refresh
    *

  • Du veränderst den View im Backend und aktualisierst ihn dort auch. Nur damit diese Änderungen im Frontend angezeigt werden muss der Frontend View aktualisiert werden und das geht aktuell nur durch neu öffnen des Views

  • Irgendwie habe ich da ein Problem, der Source-Code läuft im Debugging ab,
    aber das Ergebnis ist dann nicht sehr befriedigend.


    Der Source-Code des Buttons der Vorgängermaske sieht folgendermaßen aus:




    Sub Click(Source As Button)

    Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim ws As New NotesUIWorkspace
    Dim doc As NotesDocument
    Dim view As NotesView
    Dim vc As NotesViewColumn

    Set db = s.CurrentDatabase
    Set view = db.GetView( "RECRM_TYRE_002" )

    ' Spaltenüberschrift im VIEW ändern

    feld = view.Columns(2).title
    Set vc = view.Columns(2)
    vc.Title = "Hugo"
    Call view.Refresh()

    ' Dokument mit dem eingebetteten VIEW aufrufen

    Set s = New NotesSession
    Set db = s.CurrentDatabase
    Set doc = db.CreateDocument
    doc.Form = "RECRM_TYRE_001"
    viewname = "RECRM_TYRE_002"
    doc.ViewName = ViewName
    Call ws.EditDocument(True, doc)

    End Sub

    • Offizieller Beitrag

    Du musst das Dokument mit der eingebetteten Ansicht erst im UI zu machen.



    uidoc.Close


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Meine Anwendung sieht folgendermaßen aus:


    Maske Menue beinhaltet Button: Reifengrößen wo vorher beschriebene Source hinterlegt ist.


    Das Dokument RECRM_TYRE_001 ist zu diesem Zeitpunkt nicht geöffnet


    Jetzt wird der Button Reifengrößen gedrückt:
    - der View ( RECRM_TYRE_002) wird verändert
    - jetzt wird mit Call ws.EditDocument(True, doc) in einer neuen Session
    das Dokument RECRM_TYRE_001 mit dem eingebetteten VIEW RECRM_TYRE_002 geöffnet


    wie kann ich das Dokument schließen wenn es gar nicht geöffnet ist ???

    • Offizieller Beitrag

    bin mir nicht sicher, aber Du ändert im Backend etwas am Desigen der DB. Einige Dinge werden gecacht und erst bei einem Schließen der DB (Kachel darf auch nicht markiert sein) verworfen.


    Was Du auch noch versuchen kannst, ohne Garantie, dass es funktioniert!
    Veränder die Ansicht und dann deklariere erst den WS.


    ODER
    Mach 2 Scripte, das erste verändert die Ansicht und dass 2. Ruft das Dokument auf. Im ersten Script rufst Du dann das 2. Script auf (NotesAgent.Run).


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Danke für die Hilfe.


    Ich habe den Fehler gemacht und dies immer im Designer getestet, deshalb
    wurden die Änderungen nicht sofort wirksam.
    Als ich den Designer beendet habe und die Anwendung in LotusNotes aufgerufen habe
    hat es sofort funktioniert.


    Gruß Paul