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?