Seite 1 von 1
Bericht über eine Schaltfläche direkt zum Standart Drücker senden
Verfasst: So 22. Jan 2017, 20:08
von thomas.weiss
Hallo Leute,
ich möchte einen Bericht über eine Schaltfläche direkt an meinen Standard Drücker senden, wie geht das? Ich arbeite mit Base (Version: 5.2.4.2) unter Ubuntu 14.06.
Vielen Dank für die Hilfe!
Gruß
Thomas
Re: Bericht über eine Schaltfläche direkt zum Standart Drücker senden
Verfasst: So 22. Jan 2017, 20:47
von RobertG
Hallo Thomas,
schau im Base-Handbuch LO 5.0 im Kapitel
Makros > Drucken aus Base heraus
nach. Da steht der komplette Code für den Druck eines Berichtes über den Standarddrucker ohne den Bericht selbst überhaupt erst zu Gesicht zu bekommen.
Gruß
Robert
Re: Bericht über eine Schaltfläche direkt zum Standart Drücker senden
Verfasst: Di 24. Jan 2017, 18:08
von thomas.weiss
Hallo Robert,
vielen Dank für die Hilfe. ich habe folgenden Code gefunden, nur leider funktioniert der nicht. Das Programm, gibt bei getPrinter die Fehler Meldung "Eigenschaft oder Methode nicht gefunden: getPrinter" aus. Warum läuft der Code nicht? Muss der Code irgendwie noch angepasst werden?
Vielen Dank!
Gruß
Thomas
Sub BerichtDruckenUndSchliessen(oReport AS OBJECT)
DIM Props
DIM stDrucker AS STRING
Props = oReport.getPrinter()
stDrucker= Props(0).value
DIM arg(1) AS NEW com.sun.star.beans.PropertyValue
arg(0).
name = "Name"
arg(0).value = "<" & stDrucker & ">"
arg (1).name = "Wait"
arg(1).value =
True
oReport.print(arg())
oReport.close(true)
End Sub
Re: Bericht über eine Schaltfläche direkt zum Standart Drücker senden
Verfasst: Di 24. Jan 2017, 19:24
von RobertG
Hallo Thomas,
die Prozedur hat am Anfang stehen:
Du musst der Prozedur den Bericht als Objekt übergeben. Die entsprechenden Prozeduren stehen im Handbuch weiter oben.
Du kannst den Inhalt aus dem Handbuch auch entsprechend anders einbinden:
Code: Alles auswählen
Sub BerichtDruckenUndSchliessen
DIM Props
DIM stDrucker AS STRING
oReport = ThisDatabaseDocument.ReportDocuments.getByName("Berichtsname").open
oReportView = oReport.CurrentController.Frame.ContainerWindow
oReportView.Visible = False
Props = oReport.getPrinter()
...
Dann wird der Bericht geöffnet, glich auf unsichtbar geschaltet und anschließend der Drucker gesucht.
Gruß
Robert
Re: Bericht über eine Schaltfläche direkt zum Standart Drücker senden
Verfasst: Di 24. Jan 2017, 21:22
von thomas.weiss
Hallo Robert,
vielen Dank für den Tipp, hat bestens funktioniert. Ich habe mir die Druckversion von Handbuch bestellt! Bin schon gespannt auf die Lieferung!
Gruß
Thomas
Re: Bericht über eine Schaltfläche direkt zum Standart Drücker senden
Verfasst: Di 24. Jan 2017, 21:33
von RobertG
Hallo Thomas,
die letzte Druckversion bezieht sich allerdings auf das Handbuch, das zu Version LO 5.0 herausgekommen ist. Ich weiß allerdings selbst nicht mehr, wie viel ich zur Version 5.1 ergänzt habe. Die nächste Version werde ich erst raus bringen, wenn sich bei der Firebird-Datenbank so viel getan hat, dass ich die Möglichkeit der Benutzung dieser Datenbank auch ehrlich beschreiben und begrenzt empfehlen kann.
Gruß
Robert
Re: Bericht über eine Schaltfläche direkt zum Standart Drücker senden
Verfasst: So 9. Apr 2017, 15:49
von mexman
Hallo Robert:
Das o.a. Makro
Code: Alles auswählen
Sub BerichtDruckenUndSchliessen
DIM Props
DIM stDrucker AS STRING
oReport = ThisDatabaseDocument.ReportDocuments.getByName("Abfrage1").open
oReportView = oReport.CurrentController.Frame.ContainerWindow
oReportView.Visible = False
Props = oReport.getPrinter()
stDrucker= Props(0).value
DIM arg(1) AS NEW com.sun.star.beans.PropertyValue
arg(0).name = "Name"
arg(0).value = "<" & stDrucker & ">"
arg(1).name = "Wait"
arg(1).value = True
oReport.print(arg())
End Sub
funktioniert bei mir leider nicht.
Es öffnet den Bericht, und füllt ihn aus.
Dann verschwindet er wieder, aber an den Drucker wird nichts geschickt.
Wenn ich ...Visible = true setze, sehe ich dass der Bericht stehen bleibt. aber gedruckt wird nichts.
Ein Standarddrucker ist definiert. Ich wollte mit ECHO arg() sehen, was da drin steht, aber das geht wohl so nicht
Gruss
Michael
Gelöst
Verfasst: So 9. Apr 2017, 19:32
von mexman
Ich nehme alles zurück:
Hier war mein CUPS-Druckerserver abgestürzt!
Klappt alles! Ihr seit KLASSE
Gruss
Michael