Autor Thema: RTF füllen, der Inhalt wird nicht refresht  (Gelesen 2560 mal)

Offline Frettchen

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
RTF füllen, der Inhalt wird nicht refresht
« am: 28.09.05 - 15:11:05 »
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......


Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: RTF füllen, der Inhalt wird nicht refresht
« Antwort #1 am: 28.09.05 - 15:24:12 »
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 


Damit solltest du dein Problem lösen können.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Frettchen

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
Re: RTF füllen, der Inhalt wird nicht refresht
« Antwort #2 am: 29.09.05 - 12:06:43 »
 :)
Diese Function (bei mir als Sub) in der Script-Bibliothek untergebracht, hat´s gebracht.
Danke für die schnelle Hilfe......

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz