Autor Thema: mehrere NotesDokumente per doc.RenderToRichTextItem in ein RTItem schreiben  (Gelesen 2516 mal)

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
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

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
	

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
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
mach doch mal hinter:
addRenderedDocToRTItem = doc.RenderToRTItem(rtItem)
ein
rtItem.saveToDisk = true

bubble
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Ä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
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
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) 
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
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
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

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 
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
ja das ist schon komisch, aber z.B. ein
Code
For a = 0 To 9
     Set it = New NotesItem(doc, "meinFeldname", a)
Next
erzeugt 10 gleichnamige Felder.

bubble
PS: es gibt auch die Funktion doc.getNextItem(item)  ;)
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz