Domino 9 und frühere Versionen > ND8: Entwicklung
In einem Dokument aus einem RT Feld in ein anderen RT Feld kopieren
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