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
und wenn bei
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:
(ist bestimmt nicht die feine Englische Art)
OOo 2.4.0
OpenSuSE 11.0