Hier mein Code: (es ist ein bestehendes Dokument, was nicht gesendet wird)
Dim uiws As New NotesUIWorkspace
Dim session As New NotesSession
Set db = session.CurrentDatabase
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
pick =uiws.Pickliststrings(PICKLIST_CUSTOM, False, db.Server, db.FilePath,"All","Selection","Choose the doc to link:", 7)
If Isempty(pick) Then Exit Sub
unid = Strleft(pick(0), "~")
docsubject = Strright(pick(0), "~")
Set temp = db.GetDocumentByUNID(unid)
[b]Set rtitem = New NotesRichTextItem(doc,"linkstodocs")
Set rtitem = doc.GetFirstItem("linkstodocs")[/b]
Call rtitem.AddNewline(1)
Call rtitem.appendDoclink(temp,docsubject)
Call rtitem.AppendText(" - " + docsubject)
Call doc.save(True, False)
doc.saveoptions = "0"
Call uidoc.Close
Set uidoc = uiws.EditDocument(True, doc)
Set doc = uidoc.Document
Ich habe keine Idee mehr, wie ich es mit dem fettgedruckten Teil handhaben soll....
GetFirstItem liefert je nach Feldtyp NotesItem oder NotesRitchTextItem zurück. Also reicht ein:
Dim rtitem As NotesRichTextItem
...
%Rem Set rtitem = New NotesRichTextItem(doc,"linkstodocs")
Das braucht man nicht.
%End Rem
Set rtitem = doc.GetFirstItem("linkstodocs")
Man hat nur Ärger mit den Richtextfeldern. Gibt es da keine einfachere Lösung? So brech ich mir wieder einen ab....
Es gibt keine einfachere Lösung mit RTF-Feldern. Ich habe mir da auch schon sehr oft einen abgebrochen.
Bei einem neuen Dokument kannst du auf ein RTF-Feld mit Script-Methoden nur zugreifen wenn das Dokument einmal gespeichert, geschlossen und wieder geöffnet wurde. Mit den normalen Script-Befehlen uidoc.Reload, uidoc.Refresh usw. kommst du hier nicht weit.
Forumsmitglied ata hat da mal eine kleine Funktion für sowas erstellt.
REM Das aktuelle Dokument schließen und wieder öffnen......
Function ReOpen(docThis As NotesDocument) As Integer
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim dbThis As NotesDatabase
Dim unid As String
ReOpen = 0
Set dbThis = docThis.ParentDatabase
Call docThis.Save(True , True)
unid = docThis.UniversalID
docThis.SaveOptions = "0" ' # ... Speicherabfrage vermeiden
Set uidoc = ws.CurrentDocument
Call uidoc.Close
Set docThis = dbThis.GetDocumentByUNID(unid)
Set uidoc = ws.EditDocument(True , docThis)
Set docThis = uidoc.Document
If docThis.HasItem("SaveOptions") Then
' # ... das Feld SaveOptions wieder entfernen...
docThis.RemoveItem("SaveOptions")
Call docThis.Save( True , True )
End If
ReOpen = 1
Print "Das Dokument wurde erneut geöffnet"
End Function
Axel