Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: acro am 01.08.05 - 11:12:30
-
Hallo zusammen,
auch wenn dieses Thema nicht neu ist, habe ich noch keine Lösung gefunden. Ich habe merhere RT-Felder in einem Dokument und möchte diese in ein neues Dokument kopieren. Problem: ab dem zweiten RT-Feld bereiten Zeilenumbrüche Probleme und nachfolgende Zeilen werden nicht angezeigt (lösche ich diese Zeilenumbrüche, erscheint der Text wieder!!!)
hier ist der relevante Code:
Sub Click(Source As Button)
Dim uiws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim mainuidoc As NotesUIDocument ' Info-Dokument (FE)
Dim maindoc As NotesDocument ' Info-Dokument (BE)
Dim mainmemo As NotesDocument ' Memo (allgemein)(BE)
Dim VarBodies(2) As Variant ' Liste der RT-Felder die übernommen werden
Dim MainBody As NotesRichTextItem ' Body im zuversendenden Memo
Dim AddBody As NotesRichTextItem ' Body der Zusatzinfo
' die hinzuzufügenden Body-Felder
VarBodies(0) = "Body"
VarBodies(1) = "SubInfo1Body"
VarBodies(2) = "SubInfo2Body"
' Memo erstellen
Set db = session.CurrentDatabase
Set mainuidoc = uiws.CurrentDocument
Set maindoc = mainuidoc.Document
Set mainmemo = db.CreateDocument
mainmemo.form = "memo"
' Body des neuen Dokuments holen
Set MainBody = New NotesRichTextItem(mainmemo, "Body")
Forall x In VarBodies
' RT-Felder hinzufügen
Set AddBody = maindoc.GetfirstItem (x)
Call MainBody.AppendRTItem(AddBody)
Call MainBody.AddNewline(2, False)
End Forall
' Dokument ins FE holen
Call uiws.EditDocument (True, mainmemo, False)
End Sub
-
Hast du das ganze schon mal mit:
Copies an item to a specified document.
Defined in
NotesItem
Syntax
Set notesItem = notesItem.CopyItemToDocument( document, newName$ )
Parameters
document
NotesDocument. The document on which to create the item. If you specify Nothing, this method generates an error.
newName$
String. The name of the new item.
Return value
notesItem
NotesItem. The new item in the specified document, with the specified name.
probiert?
Robert
-
Danke für den Tipp aber ich habe mehrere RT-Felder die zusammengefasst werden müssen. Das erste RT-Feld wird wunderbar übernommen. Bei den weiteren RT-Feldern tritt das Problem auf, sobald ein Zeilenumbruch vorhanden ist!
Ich habe auch schon versucht, vor jedem neuen AppendRTItem das Item neu zu holen, hilft aber nichts. Der Code sieht inzwischen so aus:
Forall x In VarBodies
' RT-Felder hinzufügen
Set AddBody = maindoc.GetfirstItem (x)
If AddBody.Type = Richtext Then
Call MainBody.AppendRTItem(AddBody)
Call MainBody.AddNewline(2, False)
Call mainmemo.Save(False, True)
Call AddBody.Remove
Set MainBody = mainmemo.GetFirstItem("Body")
End If
End Forall
-
Hast du die Quellfelder in einer Tabelle drin? Da kommt es nämlich zu solchen Effekten.
-
Nein, das RT-Feld ist simpel gehalten, nur formatierter Text.