Domino 9 und frühere Versionen > Entwicklung
RTF füllen, der Inhalt wird nicht refresht
(1/1)
Frettchen:
Hallo,
Ich wurde kurzfristig ins kalte Wasser gestoßen und habe nun als "Ahnungsloser" (ich komme aus den Bereichen Delphi, VB, C++) einige Lotus-Notes 5 Datenbanken an der Backe.
In einer Maske habe ich ein RTF-Feld mit dem Namen "Anlagen", das ich auf Tastenklick folgendermaßen fülle:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim rtitem As Variant
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set rtitem = doc.GetFirstItem( "Anlagen" )
If ( rtitem.Type = RICHTEXT ) Then
Call rtitem.AddNewLine( 1 )
Call rtitem.AppendText( "Hier soll was rein" )
Call rtitem.AddTab( 2 )
Call rtitem.AppendText( "und hier noch mal was" )
Call doc.Save( False, True )
End If
End Sub
Ich habe jetzt das Problem, daß ich die o. a. Änderungen nicht sehen kann, das RTF-Feld wird nicht "refresht". Wird das Dokument geschlossen und wieder geöffnet, sind sie aber zurückgeschrieben. Da das Dokument aber noch weiter bearbeitet werden soll, ist dies nicht wünschenswert.
Wie bekomme ich innerhalb des Scriptes Notes dazu, die Anzeige zu aktualisieren. Ich habe es schon mit NotesUIDocument.Refresh oder NotesUIDocument.Reload probiert, bringt aber nichts.
Ich hoffe auf Eure Hilfe......
Axel:
Hi,
die von dir verwendeten Methode bringen bei RTF-Feldern nichts. Das Dokument muss geschlossen und wieder geöffnet werden.
Da es aber eine Methode ReOpen standardmäßig nicht vorhanden ist, ist unser Forenmitglied ata (Anton Tauscher) zu Tat geschritten und hat diese Funktion geschrieben.
--- 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 ---
Damit solltest du dein Problem lösen können.
Axel
Frettchen:
:)
Diese Function (bei mir als Sub) in der Script-Bibliothek untergebracht, hat´s gebracht.
Danke für die schnelle Hilfe......
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln