Domino 9 und frühere Versionen > ND6: Entwicklung
Problem: DocLink im RTField anhängen
cfiber:
Dann kommt aber die Fehlermeldung "Object Variable Not Set"
m3:
Auf RTF-Inhalte kann man nur zugreifen, NACHDEM das Dok gespeichert wurde. Kann es sein, dass es sich bei dem Dokument um ein neues handelt, das noch nicht gespeichert wurde? Wenn ja, dann ist die Fehlermeldung normal.
flaite:
Ich hab letztens auch festgestellt, dass new RichTextItem ein neues RichTextItem erstellt, egal ob schon eins da ist.
Die Aufgabe des Scripts bestand darin von aussen Attachments von Tif-Dateien aus einem RT-Feld zu löschen.
Ging dann mit RTItem = doc.getFirstItem("itemName").
Wenn du das Dokument im Frontend geöffnet hast, ist es schwieriger.
Versuch mal im PostSave oder im QueryClose Event das DocLink im Backend zu setzen.
Besorg dir das RichTextItem mit doc.getFirstItem(itemName). Du mußt aber nach not nothing und nach item.type checken.
Gegebenenfalls ist es notwendig, dass du dir das gerade geschlossene Dokument über db.getDocumentByUNID holst.
Die UniversalID und die Daten für das Ziel des Doclinks kannst du dir in globalen Masken-Variablen speichern.
Gruß Axel
cfiber:
@kennwort
Genau das ist das Problem. Man hat nur Ärger mit den Richtextfeldern. Gibt es da keine einfachere Lösung? So brech ich mir wieder einen ab....
Axel:
--- Zitat von: cfiber am 16.12.05 - 09:53:50 ---Man hat nur Ärger mit den Richtextfeldern. Gibt es da keine einfachere Lösung? So brech ich mir wieder einen ab....
--- Ende Zitat ---
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.
--- Code: ---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
--- Ende Code ---
Axel
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln