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