Link auf Dokument erzeugen

  • Hallo,


    ich habe folgende Problematik:


    In einer Maske soll der Anwender aus einer Ansicht (z.B. über PickList...) ein Dokument aus einer Datenbank wählen können.


    In einem RichTextFeld in der Maske soll nun ein Doc-Link auf das gewählte Dokument erzeugt werden.


    Jetzt kann ich natürlich über die RichtTextItem-Class mit AppendDcoLink im BackEnd einen Link im entsprechenden Feld erzeugen. Aber das sieht der Anwender leider nicht. Erst nach Schließen und Öffnen des Dokuments ist der Link zu sehen. Also nicht schön.


    Gibt es einen Weg, einen Doc-Link so zu erzeugen, daß er direkt in der Maske angezeigt wird?


    Gruß
    Dirk

    Um wirklich Erfolg im Leben haben zu können, muß man 2 Regeln stets befolgen:


    1. Erzähl nicht alles, was du weißt.

    • Offizieller Beitrag

    Du kannst im Script das UIDokument schließen und neu öffnen. Anders geht es leider nicht, wenn Du RT-Felder im BackEnd eines geöffneten Dokumentes veränderst.


    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

  • Hallo,


    ok die Variante kenne ich. Gefällt mir aber nicht sonderlich. :D


    Gibt es denn neben dem Erzeugen des Links im Backend eine andere Möglichkeit?


    Evtl. über die Zwischenablage? Also Link irgendwie in die Zwischenablage basteln und dann über NotesUiDocument.Paste ins gewählte Feld schreiben?


    Gruß
    Dirk

    Um wirklich Erfolg im Leben haben zu können, muß man 2 Regeln stets befolgen:


    1. Erzähl nicht alles, was du weißt.

  • Hallo,


    ich hab jetzt noch eine Lösung, ist aber auch "gebastel". Die Lösung basiert auf einem Dokument im Backend, in dem ich den Link erzeuge. Das wird dann im Frontend geöffnet, der Doc-Link in die Zwischenablage kopiert und dann wieder geschlossen.


    Die Zwischenablage kann ich dann ins Richt-Text-Feld kopieren, wo der Link landen soll.


    Der einzige Vorteil diese Lösung ist für mich, daß ich das aktuelle vom Anwender bearbeitete Formular nicht speichern muss, um es zu schließen und wieder zu öffenen. Der Anwender hat somit immer noch die Möglichket seine Änderungen zu verwerfen.


    Hier mal der Code dazu:


    Set docs = ws.PickListCollection(3, False, "server", "X.nsf", "Ansicht", "Titel", "Prompt")
    If docs.Count = 1 Then
    [color=00CC00]' Neue Dokument im Backend anlegen[/color]
    Set newdoc = New NotesDocument (ses.CurrentDatabase)
    newdoc.Form = "($Dummy)"
    [color=00CC00]' RichtText-Field für den Link anlegen[/color]
    Set rtfield = New NotesRichTextItem(newdoc, "DMY_LINK")
    [color=00CC00]' Link einfügen[/color]
    Call rtfield.AppendDocLink(docs.GetFirstDocument, "Link")
    [color=00CC00]' Dokument speichern[/color]
    Call newdoc.Save(True, False, True)
    [color=00CC00]' Dokument im Frontend öffnen[/color]
    Set tempuidoc = ws.EditDocument(True, newdoc)
    [color=00CC00]' Link in Zwischenablage kopieren[/color]
    Call tempuidoc.GotoField("DMY_LINK")
    Call tempuidoc.SelectAll
    Call tempuidoc.Copy
    [color=00CC00]' Frontend wieder schließen[/color]
    Call tempuidoc.Close
    [color=00CC00]' Backend-Dokument wieder löschen[/color]
    Call newdoc.Remove(True)

    [color=00CC00]' Ins aktuelle Dokument ins richtige Feld einfügen[/color]
    Call uidoc.GotoField("LINK")
    Call uidoc.FieldSetText("LINK", "")
    Call uidoc.Paste
    End If


    Gruß
    Dirk

    Um wirklich Erfolg im Leben haben zu können, muß man 2 Regeln stets befolgen:


    1. Erzähl nicht alles, was du weißt.