Seite 1 von 1

Bericht drucken per Makro

Verfasst: Fr, 25.07.2008 10:59
von nusta88
Hallo,

ich hab versucht selbst das Problem zu lösen, allerdings bekomme ich grundsätzlich Fehlermeldungen.

Ich zeige euch mal den Code und bitte um Hilfe

Code: Alles auswählen

sub Bericht_drucken
Dim arg(1) as new com.sun.star.beans.PropertyValue
DatabaseContext=createUnoService("com.sun.star.sdb.DatabaseContext")
oDatenquelle = DatabaseContext.getByName("HV")
oDoc = oDatenquelle.DatabaseDocument
oBericht = oDoc.getReportDocuments().getByName("Kunde")
oBerichtDoc = oBericht.getComponent
oBerichtDoc.print(arg())
End sub
Danke im Voraus

Re: Bericht drucken per Makro

Verfasst: Fr, 25.07.2008 11:23
von komma4
welche OOo Version? Betriebssystem?
Welche Fehlermeldung, an welcher Stelle?

Re: Bericht drucken per Makro

Verfasst: Fr, 25.07.2008 11:48
von nusta88
Also ich hab es weiter bearbeitet :

Code: Alles auswählen

sub Bericht_drucken
DatabaseContext=createUnoService("com.sun.star.sdb.DatabaseContext")
oDatenquelle = DatabaseContext.getByName("HV")
oDoc = oDatenquelle.DatabaseDocument
oBericht = oDoc.getReportDocuments().getByName("Kunde")
oBerichtDoc = oBericht.getComponent
Props = oBerichtDoc.getPrinter()
sDrucker = Props(0).value               
Dim arg(1) as new com.sun.star.beans.PropertyValue   
arg(0).name = "Name"					
arg(0).value = "<" & sDrucker & ">"   	
arg(1).name = "Wait"					
arg(1).value = True						
oBerichtDoc.print(arg())				
End sub
jetzt bekomme ich einmal bei

Code: Alles auswählen

Probs = oBerichtDoc.getPrinter
und wenn bei

Code: Alles auswählen

oBerichtDoc.print(arg())
eine Fehlermeldung, dass die Objektvariable nicht belegt ist.

OO Version 3.0 Beta
Windows XP SP 2

Re: Bericht drucken per Makro

Verfasst: Fr, 25.07.2008 13:59
von komma4
ich habe noch nicht mit Berichten gearbeitet....

Tipp: nehme Xray zur Untersuchung Deiner Objekte.

Viel Erfolg!

Re: Bericht drucken per Makro

Verfasst: Di, 29.07.2008 14:02
von nusta88
So habe jetzt das Drucken hinbekommen, indem ich den Bericht öffne. Allerdings möchte ich jetzt den Bericht nachdem der Druckbefehl übergeben wurde wieder schließen. Der nimmt den Befehl nicht an.

Hat jmd da einen Lösungsvorschlag

Code: Alles auswählen

Sub Bericht_drucken2

oContexto = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oFonte = oContexto.getRegisteredObject("HV")
oReports = oFonte.DatabaseDocument.ReportDocuments
oAConnection = oFonte.getConnection("","")

Dim pProp(1) As New com.sun.star.beans.PropertyValue
pProp(0).Name = "ActiveConnection"
pProp(0).Value = oAConnection
pProp(1).Name = "OpenMode"
pProp(1).Value = "open"

oReport = oReports.loadComponentFromURL("Kunde", "_blank", 0, pProp())
Props = oReport.getPrinter()
sDrucker = Props(0).value               
Dim arg(1) as new com.sun.star.beans.PropertyValue   
arg(0).name = "Name"					
arg(0).value = "<" & sDrucker & ">"   	
arg(1).name = "Wait"					
arg(1).value = True						
'oReport.print(arg())
If HasUnoInterfacees(oReport,"com.sun.star.util.XCloseable")then
oReport.close(True)
EndIF	
Danke schonmal

Re: Bericht drucken per Makro

Verfasst: Fr, 26.09.2008 13:39
von Rantanplan
oReport.close(True)
funktioniert bei mir auch nicht.
So geht's aber:

Code: Alles auswählen

	oReports.dispose()
(ist bestimmt nicht die feine Englische Art)

OOo 2.4.0
OpenSuSE 11.0