Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: brathaenchen am 01.09.05 - 11:05:48

Titel: RTF Feld kopieren
Beitrag von: brathaenchen am 01.09.05 - 11:05:48
Hi

ich möchte im Query Save einer Subform mehrere RTF Felder an ein anderes RTF Feld anhängen. Bekomme aber eine fehlermeldung nach der anderen..

Hier mal ein kleines Beispiel:


Dim ws As New notesuiworkspace
Dim uidoc As notesuidocument
Dim doc As NotesDocument   
Set uidoc=ws.currentdocument
Set doc = uidoc.Document   
Dim rtitemA As Variant
Dim rtitemB As Variant
Set rtitemA = doc.GetFirstItem( "Test1" )
Set rtitemB = doc.GetFirstItem( "Test2" )
Call rtitemA.AppendRTItem( rtitemB )
Call doc.Save( False, True )


Kann mir kurz einer helfen?
Titel: Re: RTF Feld kopieren
Beitrag von: Glombi am 01.09.05 - 11:15:59
Ist das nun ein "kleines Beispiel" oder der gesamte Code der nicht funktioniert?

Zitat
Bekomme aber eine fehlermeldung nach der anderen..
Wenn Du die dann bitte auch hier nennen könntest oder sollen wir mal wieder die Kristallkugel herausholen?

Andreas
Titel: Re: RTF Feld kopieren
Beitrag von: brathaenchen am 01.09.05 - 11:17:42
nein das ist im moment alles :)
den rest habe ich auskommentiert.

Will erstmal nur ganz simpel 1 RTF Feld kopieren
Titel: Re: RTF Feld kopieren
Beitrag von: Glombi am 01.09.05 - 11:19:04
Dim rtitemA As NotesRichTextItem
Dim rtitemB As NotesRichTextItem

Welche Fehler kommen? - letzter Aufruf!  ;D

Andreas
Titel: Re: RTF Feld kopieren
Beitrag von: brathaenchen am 01.09.05 - 11:21:07
nein das geht auch nicht bekomme sofort einen Type Mismatch
Titel: Re: RTF Feld kopieren
Beitrag von: DerAndre am 01.09.05 - 11:25:49
Handelt es sich dabei um ein neues Dokument?

André
Titel: Re: RTF Feld kopieren
Beitrag von: brathaenchen am 01.09.05 - 11:26:28
ja es ist ein neues
Titel: Re: RTF Feld kopieren
Beitrag von: DerAndre am 01.09.05 - 11:43:24
 ;D Mal so ganz simpel bei RTF gibt es nicht...

Versuch mal dies auf beide RTF

Call notesRichTextItem.Update

Hast du dann Zugriff auf die Felder?

André
Titel: Re: RTF Feld kopieren
Beitrag von: Driri am 01.09.05 - 14:08:55
RTFs gibt es nicht in neuen Dokumenten. Du mußt das Dokument erst speichern, erst dann sind die RTFs vorhanden.
Titel: Re: RTF Feld kopieren
Beitrag von: flaite am 01.09.05 - 14:18:17
 
1. Versuche dir mal deine RichTextItems so zu holen:
Code
Dim RTItemA as NotesRichTextItem
set rtItemA = new NotesRichTextItem(doc, "rtitemA)

Kann sein, dass Notes vor dem Speichern gar nicht weiss, dass das Feld ein RichTextItem ist. Bin mir aber nicht so sicher.

2. Diri hat völlig Recht.
Wenn du das Anhängen durchführen willst und das Dokument aber zum Editieren geöffnet lassen willst, musst du:
1. Das Dokument Speichern und Schliessen.
2. Dann aber im QueryClose Event das Dokument wieder neu zum Editieren Öffnen (via uiws.editDocument.
Titel: Re: RTF Feld kopieren
Beitrag von: m3 am 01.09.05 - 14:34:43
Kann sein, dass Notes vor dem Speichern gar nicht weiss, dass das Feld ein RichTextItem ist. Bin mir aber nicht so sicher.
Aus der Notes-Hilfe:
When you change the value of a NotesRichTextItem object, the change is not written to disk until you call the Save method for the parent NotesDocument.
If you specify a new NotesRichTextItem object but do not add content to it, an item is not created when the document is saved.
Titel: Re: RTF Feld kopieren
Beitrag von: flaite am 01.09.05 - 14:43:31
Thx. Mit meiner Initialisierung über new (s.o. gehts aber auch schon vorher).
m3s Hinweis bestätigt aber meine Vermutung bezüglich des TypeMissmatches. Notes weiss im QuerySave überhaupt noch nicht, dass das Item ein RichTextItem ist. Deshalb dürfte es vom type her erstmal unter dem unspezifischeren NotesITem laufen.
Du kannst das überbrüfen über die Eigenschaft NotesItem.Type, bzw. dir diese im Debugger anschauen.

Axel
Titel: Re: RTF Feld kopieren
Beitrag von: DerAndre am 01.09.05 - 15:04:33
Was auch noch wichtig ist:

Die Eigenschaften der zu kopierenden RTF werden auch übernommen.

D.h. wenn in einem Feld steht Hide When im Lesemodus, dann sieht man das Feld auch nicht. Das kann eine böse Falle werden. Ich hab mir deswegen mal den Wolf gesucht.

Gruss

André