Domino 9 und frühere Versionen > ND7: Entwicklung

Richtextfeld frisst Tabellen

(1/2) > >>

BMWTordi:
Also ich hatte schonmal ein Problem gepostet indem es grob um dieses Thema ging.

Sachverhalt ist folgender:

Ich habe in meiner Maildatenbank einen Button mit dem ich die infos aus markierten emails in eine andere Datenbank übertrage. Dabei erstelle ich pro email ein neues Dokument.

Code:

Dim body As NotesItem
   Set body = doc.GetFirstItem("body")
   
   Dim new_body As NotesItem
   Stop
   Set new_body = body.CopyItemToDocument(hotdoc, "bemerk")


Problem

Das Problem bezieht sich auf das oben gezeigte RT Feld "bemerk". In dieses Feld kopiere ich das "body" Feld der Email. Leider kann man bei manchen Dokumenten anschließend das neu generierte Dokument nicht öffnen. Es erscheint die Fehlermeldung "Sie haben Versucht einen Layoutbereich in eine Tabelle zu laden".


Das war das grobe Problem.

Neue Erkenntnis:

Die Dokumente die sich nicht öffnen lassen haben alle eine Gemeinsamkeit. Bei Erstellen frisst das RT Feld den rest des Dokuments auf. Das RT Feld hat also einen Anfang aber keine Ende. Die Tabellen und Felder unterhalb des RT Feldes sind alle im RT Feld enthalten und ich kann Schriftgröße usw ändern.

Glombi:
Ich würde es mit

Inserts the contents of one rich text item in another.
Defined in
NotesRichTextItem
Syntax
Call notesRichTextItem.AppendRTItem( notesRichTextItem2 )
Parameters
notesRichTextItem2
The item to be appended. If you specify Nothing, this method generates an error.

machen. D.h erstmal aus hotdoc das RichTextItem per Script setzen und dann mit AppendRTItem das "Body" dort anhängen.

Andreas

BMWTordi:
Danke für den Tip. Habe es jetzt so gelöst:


        Dim body As NotesRichTextItem
   Set body = doc.GetFirstItem("body")
   Dim new_body As NotesRichTextItem
   Set new_body = New NotesRichTextItem(hotdoc, "bemerk" )
   Call new_body.AppendRTItem( body)
   
   Call hotdoc.Save(True,False,True)
 
Aber das Problem ist leider noch da.

Glombi:
Mach mal anstelle von

Set new_body = New NotesRichTextItem(hotdoc, "bemerk" )

ein

Set new_body = hotdoc.GetFirstItem("bemerk" )

Das mit dem New ist immer so eine Sache, wie wir gestern auch in einem anderen Thread gesehen haben.

Andreas

BMWTordi:
Wenn ich das so durchziehe hab ich einen object Variable not set:


Dim body As NotesRichTextItem
   Set body = doc.GetFirstItem("body")
   Dim new_body As NotesRichTextItem
   Set new_body = hotdoc.GetFirstItem("bemerk" ) <--- genau hier
   Call new_body.AppendRTItem( body)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln