Domino 9 und frühere Versionen > ND6: Entwicklung

mehrere NotesDokumente per doc.RenderToRichTextItem in ein RTItem schreiben

(1/2) > >>

flaite:
Hi,

das im Betreff angegebene funktioniert nicht.
Gibts da irgendeinen Trick?


--- Code: ---
For i = 0 To Ubound(globArrDocGraph)
Print "add Document to email: " & globArrDocGraph(i).UniversalID
Call objEmail.addRenderedDocToRTItem(globArrDocGraph(i), "BodyProcess")
Next

--- Ende Code ---

In der Klasse des Objekts objEmail steht sowas:

--- Code: ---'###########################################################################################################
'/**
' * add rendered Document to the RichTextField
' *
' * @param the notes document to be copied in the RichTextItem
'* @param the name of the RichTextItem
' * @depends (based on)
' * @return indicates success or failure of operation
' * <br><code>@calls:</code> LSLibErrorHandling - handleError
' * <br><code>@calls:</code>
' * <br><code>@calledby:</code>
' * @version 1.0 build 15.08.2007
' * @author Axel Janssen
' */
Public Function addRenderedDocToRTItem(doc As NotesDocument, strNameRTItem As String) As Integer
'ErrorHandling
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Const constrErrorLocation = "(LsClassSpiMailMergeEMail) - addRenderedDocToRTItem()"
On Error Goto ErrorHandler
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Dim rtItem As NotesRichTextItem
Set rtItem = New NotesRichTextItem(i_docEMail, strNameRtItem)

'doc.Save True, False
i_docEMail.save True, False
addRenderedDocToRTItem = doc.RenderToRTItem(rtItem)

Ende:
Exit Function

'--------------------------------------- Error handling -------------------------------------------------
ErrorHandler:
Call objPublicErrorHandler.handleError ( Err, Error, Erl, constrErrorLocation, getMsgText(12))
addRenderedDocToRTItem = False
Resume Ende

End Function


--- Ende Code ---

Auch wenn ich das Dokument, in der das Dokument an das RichTextItem angehängt werden soll, vor der Operation abspeichere, tut er da immer nur das letzte Dokument des Arrays rein.

Irgendwelche Ideen?

Gruß Axel

jBubbleBoy:
mach doch mal hinter:
addRenderedDocToRTItem = doc.RenderToRTItem(rtItem)
ein
rtItem.saveToDisk = true

bubble

jBubbleBoy:
Ähhh ich sehe gerade Du machst immer ein
Set rtItem = New NotesRichTextItem(i_docEMail, strNameRtItem)
das geht so natürlich nicht. mach getFirstItem, wenn es noch nicht existiert.

ich war blind, sorry
bubble

flaite:
Hm. Richtig logisch find ich es nicht. Schliesslich ist das eine Objekt-Repräsentanz des RichTextItem und nicht das wirkliche Ding.
Nur weil ich ein neues Objekt davon bilde, soll er doch nicht das bestehende Feld leeren ???
Wenn ich mit

--- Code: ---
i_docMail.getFirstItem(strName)

--- Ende Code ---
findet er es nicht. D.h. die Variable, die den Rückgabewert der Methode hält, bleibt leer.
Versuch noch ein paar Alternativen.

Gruß Axel

flaite:
Danke für die tolle Unterstützung.

So geht es:


--- Code: ---
Public Function addRenderedDocToRTItem(doc As NotesDocument, strNameRTItem As String, firstCall As Integer) As Integer
    'ErrorHandling

' -- stuff
Dim rtItem As NotesRichTextItem
Stop
If firstCall Then
Set rtItem = New NotesRichTextItem(i_docEMail, strNameRtItem)
Else
Set rtItem = i_docEMail.getFirstItem(strNameRtItem)
End If

' - other stuff

--- Ende Code ---

Im ersten Aufruf muss das RichTextItem-Objekt über NEW geholt werden.
In allen folgenden Aufrufen  dann über doc.GetFirstItem(strNameItem).

Ganz einsehen tue ich das nach wie vor nicht. 
Ich glaub, ich muss meinen 2-jährlichen Thread auf Ben Langhinrich zu RichText starten...
Werd hier den Link anhängen, hab aber zur Zeit eine Menge Arbeit.

Gruß Axel 

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln