Also: Vielen Dank erst einmal für die Antworten.
Ein Problem habe ich identifizieren können. Es liegt wohl an Windows Mail, dem man keine Anlagen übergeben kann. Ich habe jetzt parallel einmal Thunderbird installiert, und siehe da - es geht. Allerdings möchte ich Thunderbird nicht als Standardmailer verwenden, weshalb ich über den Shellbefehl die Mails an Thunderbird übergeben werde.
D.h. aber auch, dass ich den Umweg (wie von - ich glaube komma4 - in einem anderen Beitrag gezeigt) nehmen werde, in dem ich den Bericht erst als PDF ins TMP-Verzeichnis speichere und diese Datei anschließend versende. Dabei würde ich aber nocheinmal eure Hilfe benötigen, da es beim PDF-speichern zu einer Fehlermeldung kommt.
So versuche ich das PDF zu speichern:
Code: Alles auswählen
'========= Temp-Pfad auslesen:
oPfad = CreateUnoService("com.sun.star.util.PathSettings")
tmpURL = convertFromURL(oPfad.temp)
tmpURL = tmpURL & "/Datenbank_Mailer/Treffpunkte.pdf"
'========= Bericht öffnen:
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 = "Treffpunktplan/Treffpunkte_SerienMail"
Context=CreateUnoService("com.sun.star.sdb.DatabaseContext")
DB=Context.getByName("DBname")
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( ) )
Wenn ich mir den "filter" in einer msgbox anzeigen lasse, so steht korrekt "writer_pdf_Export".
In der letzten Zeile kommt es aber zu folgenden Fehler:
"Type: com.sun.star.task.ErrorCodeIOException
Message: ."
????
Also: Vielen Dank erst einmal für die Antworten.
Ein Problem habe ich identifizieren können. Es liegt wohl an Windows Mail, dem man keine Anlagen übergeben kann. Ich habe jetzt parallel einmal Thunderbird installiert, und siehe da - es geht. Allerdings möchte ich Thunderbird nicht als Standardmailer verwenden, weshalb ich über den Shellbefehl die Mails an Thunderbird übergeben werde.
D.h. aber auch, dass ich den Umweg (wie von - ich glaube komma4 - in einem anderen Beitrag gezeigt) nehmen werde, in dem ich den Bericht erst als PDF ins TMP-Verzeichnis speichere und diese Datei anschließend versende. Dabei würde ich aber nocheinmal eure Hilfe benötigen, da es beim PDF-speichern zu einer Fehlermeldung kommt.
So versuche ich das PDF zu speichern:
[code]
'========= Temp-Pfad auslesen:
oPfad = CreateUnoService("com.sun.star.util.PathSettings")
tmpURL = convertFromURL(oPfad.temp)
tmpURL = tmpURL & "/Datenbank_Mailer/Treffpunkte.pdf"
'========= Bericht öffnen:
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 = "Treffpunktplan/Treffpunkte_SerienMail"
Context=CreateUnoService("com.sun.star.sdb.DatabaseContext")
DB=Context.getByName("DBname")
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( ) ) [/code]
Wenn ich mir den "filter" in einer msgbox anzeigen lasse, so steht korrekt "writer_pdf_Export".
In der letzten Zeile kommt es aber zu folgenden Fehler:
"Type: com.sun.star.task.ErrorCodeIOException
Message: ."
????