Bericht drucken per Makro

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

nusta88
***
Beiträge: 78
Registriert: Di, 26.06.2007 13:30

Bericht drucken per Makro

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Bericht drucken per Makro

Beitrag von komma4 »

welche OOo Version? Betriebssystem?
Welche Fehlermeldung, an welcher Stelle?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
nusta88
***
Beiträge: 78
Registriert: Di, 26.06.2007 13:30

Re: Bericht drucken per Makro

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Bericht drucken per Makro

Beitrag von komma4 »

ich habe noch nicht mit Berichten gearbeitet....

Tipp: nehme Xray zur Untersuchung Deiner Objekte.

Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
nusta88
***
Beiträge: 78
Registriert: Di, 26.06.2007 13:30

Re: Bericht drucken per Makro

Beitrag 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
Rantanplan
Beiträge: 1
Registriert: Fr, 26.09.2008 13:17

Re: Bericht drucken per Makro

Beitrag 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
OOo 2.4.0
OpenSuSE 11.0
Antworten