Autor Thema: In einem Dokument aus einem RT Feld in ein anderen RT Feld kopieren  (Gelesen 2295 mal)

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
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
« Letzte Änderung: 28.04.11 - 13:31:55 von sja »

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
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

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
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.  ???




Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Tja, komisch. Ich würde das uidoc.Save vor dem Setzen der RT-Felder ausführen, vielleicht hilft's?

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
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

Offline snore

  • Aktives Mitglied
  • ***
  • Beiträge: 107
Hallo Sofia,
der Code ist gut!
Ich würde diesen gerne verwenden um z.B. eine Art Protokoll in einer DB mitzuschreiben.
Verschiedene User geben über Feld A Ihr Statement ab ..dies wird bei Speichern in Feld B nacheinander berechnet übertragen und Feld A wieder gelöscht! . Inkl. Dateianhänge etc. ... super Sache!
Ich wollte eben noch eine Zusatz einbauen, dass jeder User auch seine "eigene Farbe" bekommt. Das funktioniert zwar für die berechneten Daten (Datum/Name) .. aber nicht für das Feld A!
Hier wird das Format 1zu1 übertragen ??
Oder - Trick 17 ...?
Danke
snore




 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz