ich bin gerade dabei, eine individuelle Serienmail per Makro zu erstellen. Ich lese die Empfänger aus der DB aus und arbeite dann in einer Schleife das Resultset ab. Jeder bekommt einen individuellen Bericht ect.
Den Bericht rufe ich innerhalb der Schleife so auf:
Code: Alles auswählen
'========= Bericht laden:
Dim Context AS Object
Dim Conn As Object
Dim DB As Object
Dim ReportDoc As Object
Dim Args(2) As New com.sun.star.beans.PropertyValue
Dim ReportName As String
ReportName = "MeinPersönlicherBericht"
Context=CreateUnoService("com.sun.star.sdb.DatabaseContext")
DB=Context.getByName("MeineDB")
Conn=DB.getconnection("","")
Args(0).Name="ActiveConnection" : Args(0).Value=Conn
Args(1).Name="OpenMode" : Args(1).Value="open"
Args(2).Name="Hidden" : Args(2).Value=true
ReportDoc=DB.DatabaseDocument.ReportDocuments.loadComponentFromURL(ReportName,"_self",2,Args)
'========= Bericht als PDF unter TMP speichern:
DIM dokument AS OBJECT
dokument = ReportDoc
DIM filter AS STRING
IF dokument.supportsService( "com.sun.star.text.TextDocument" ) THEN
filter = "writer_pdf_Export"
ELSEIF dokument.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) THEN
filter = "calc_pdf_Export"
ELSEIF dokument.supportsService( "com.sun.star.presentation.PresentationDocument" ) THEN
filter = "impress_pdf_Export"
ELSEIF dokument.supportsService( "com.sun.star.draw.DrawDocument" ) THEN
filter = "draw_pdf_Export"
Else
MsgBox "Dokument-Typ unbehandelt."
Exit Sub
End If
DIM Eigenschaften( 1 ) AS New com.sun.star.beans.PropertyValue
Eigenschaften( 0 ).Name = "FilterName"
Eigenschaften( 0 ).Value = filter
Eigenschaften( 1 ).Name = "CompressMode"
Eigenschaften( 1 ).Value = 0
dokument.storeToUrl( tmpURL, Eigenschaften( ) )
ReportDoc.close(true) 'Bericht schliessen
In dieser Zeile:
Code: Alles auswählen
ReportDoc=DB.DatabaseDocument.ReportDocuments.loadComponentFromURL(ReportName,"_self",2,Args)
Habt ihr eine Idee?