Domino 9 und frühere Versionen > ND8: Entwicklung

In einem Dokument aus einem RT Feld in ein anderen RT Feld kopieren

(1/2) > >>

sja:
Hallo @All,
 
folgendes Szenario:

es gibt in einem Dokument zwei RT Felde, ein davon ist bearbeitbar FeldA, zweite FeldB berechnet.
Per einen Button soll den ganzen Inhalt aus dem FeldA in das FeldB angehängt werden und danach soll das FeldA geleert werden.
Mit folgendem Code funktioniert das auch

Sub Click(Source As Button)
   Dim ws As NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim rtitemA As Variant
   Dim rtitemB As Variant
   
   Dim s As NotesSession
   Set s = New NotesSession
   Dim user As String
   user = s.UserName
   Dim cName As String
   cName = s.CommonUserName
   
   tmpDatum=  Format(Now, "Short Date")
   tmpZeit = Format(Now, "Short Time")
   tmpDatumZeit = tmpDatum & " " & tmpZeit
   
   Dim DatumName As String
   DatumName = tmpDatumZeit & "  " & cName
   
   Set ws = New NotesUIWorkspace
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   Set rtitemA = doc.GetFirstItem( "Anhaenge" )
   Set rtitemB = doc.GetFirstItem( "Anhaenge_View" )
   
   Call uidoc.Save
      
   If ( rtitemA.Type = RICHTEXT And rtitemB.Type = RICHTEXT ) Then
      Call rtitemB.AppendText(DatumName)
      Call rtitemB.AddNewline(1)
      Call rtitemB.AppendRTItem( rtitemA )
      Call rtitemB.AddNewline(2)
      Call doc.ReplaceItemValue("Anhaenge", "")   
      Call doc.save(False,False)
      
      uidoc.document.SaveOptions ="0"        'keine Speicherabfrage
      Call uidoc.Close
      'Call ws.EditDocument(True, doc)
      'doc.SaveOptions = "1"
   End If      
   
   
End Sub


Aber, nur wenn man zweite Mal auf den Button klickt. Beim ersten klick bekommt man die folgende Lotus Notes Mitteilung:
              Falscher Datentyp in Methode RunStkCoerceVal...
und wenn man klickt OK und zweite mal auf den Button, dann wird den Code erfolgreich ausgeführt.

Wenn der Code per Debugger ausgeführt wird, kommt erst die  Mitteilung "Type mismatch" bei der Zeile

Call rtitemB.AppendRTItem( rtitemA )

Nach dem Klick OK, Debugger stoppen und neun Start wird der Code erfolgreich ausgeführt.



Vielen Dank im Voraus für jede Hilfe

Grüße
Sofia

Peter Klett:
Vermutlich fehlt beim ersten Klicken wenigstens eines der Richtextfelder. Probier mal, ob der Fehler weg ist, wenn das Dokument vorher gespeichert, geschlossen und wieder geöffnet wurde

sja:
Hallo Peter,

danke für Deine Antwort.

Eigentlich passierte es nicht nur in einem neuen Dokument, sondern in den Dokumenten, die schon mehrere Mal geöffnet die RT Felder gearbeitet und gespeichert sind.  ???



Peter Klett:
Tja, komisch. Ich würde das uidoc.Save vor dem Setzen der RT-Felder ausführen, vielleicht hilft's?

sja:
danke schön!

habe

   Call uidoc.Save

vor

   Set rtitemA = doc.GetFirstItem( "Anhaenge" )
   Set rtitemB = doc.GetFirstItem( "Anhaenge_View" )

gesetzt und jetzt funktioniert ohne Problem

noch mal vielen dank!  :)
Sofia

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln