![]() |
Druckdialog in QRPreview
Hi, ich mal wieder.
Ich habe auf einem Formular einen QRPreview, den ich auf Buttondruck hin drucken will... und zwar MIT Dialogabfrage nach dem Drucker! Wie mache ich das? Mit
Delphi-Quellcode:
geht es nicht.. da wählt er den Standarddrucker an, der weder auf allen rechnern die das Prog nutzen richtig konfiguriert ist noch in allen Fällen der richtige (Standard Schwarz/Weiss, soll aber auf einen Farbdrucker gehen).
QRP.QRPrinter.Print;
Habt ihr einen Gedanken wie ich das machen müsste? |
Re: Druckdialog in QRPreview
Den QRP-Dialog bekommste glaube ich mit QRP.Printersetup.
Wenn du einen eigenen Dialog benutzen willst, kannste dem Quickreport einfach über das Property Printerindex den gewünschten Drucker zuweisen. Dazu musst du vorher ein Property namens UseDefaultprinter ( oder ähnlich ) auf False setzen. Ganz genau hab ichs gerade auch nicht im Kopf, aber ich denke, wenn du danach suchst und etwas rumprobierst wirds schon klappen. |
Re: Druckdialog in QRPreview
Also, ich habe mich nochmal umgeguckt:
Delphi-Quellcode:
führt zu keinem unterschied... leider.
QRP.QRPrinter.PrintSetup;
Und den druckerDialog kann cih zwar starten, aber die ausgabe läuft dann noch lange nicht auf den gewählten Drucker. PrinterIndex habe ich versucht, aber fest einbauen geht nicht (weil halt Rechner sich ändern und die drucker da überall anders sind), und vom DruckerDialog finde ich irgendwie nicht den Drucker heraus (Anzahl Seiten, welches die erste ist und Co klappt wunderbar... nur den gewählten Drucker kriege ich nicht zu fassen). DefaultPrinter in allen möglichen Schreibweisen habe ich gesucht.. leider ohne Erfolg. Erinnert mich daran jeden der nochmal auf die Idee "wir machen das jetzt mit QuickReport" kommt laaangsam umzubringen ;) |
Re: Druckdialog in QRPreview
Nein, nicht QRP.QRPrinter.PrintSetup sondern QRP.Printersetup
Das sollte die Quickreporteigene Druckerauswahl öffnen, wenn ich mich recht erinnere.
Delphi-Quellcode:
Procedure Button....
QRP.Printersetup; QRP.Print; End; oder z.B. so
Delphi-Quellcode:
Anstatt den Druckerindex hardcodet auszuwählen solltest du das natürlich über Menü oder ähnliches machen. Printer.Printers enthält die Namen aller installierten Drucker. Der Index innerhalb der Stringliste ist gleichbedeutend mit dem Printerindex.
Procedure XYZ...
var i: Integer; Begin i:= Printer.Printers.IndexOf('HPDeskjet870c'); //Unit Printers muss in der uses-clause sein QRP.PrinterSettings.UseStandardPrinter := False; // <- bin nicht sicher, ob das nötig ist QRP.PrinterSettings.PrinterIndex := i; QRP.Print; End; |
Re: Druckdialog in QRPreview
*mal alles durchgeguckt hat*
Also, die Methoden klingen Sinnvioll... es gibt sie hier nur nirgends :gruebel: |
Re: Druckdialog in QRPreview
Also das QRP ist bei mir vom Typ TQuickRep. Bei dir nicht? :?
|
Re: Druckdialog in QRPreview
Zitat:
Muss das mit Preview machen... war nicht meine entscheidung, ich muss sie nur auslöffeln ;) *das EIEGNDLICH mal per HTML-Dateien geplant hatte.. mochte ich, weil flexibler, mochte der Chef aber nicht...)* |
Re: Druckdialog in QRPreview
Zur Info:
Ich habe jetzt etwas geschummelt. Erstelle den QuickReport neu und drucke das dann aus, aber das Gelbe vom Ei ist das nicht so wirklich (vor allem weil ich deshalb 2 recht nette, wenn auch nciht notwendige, Funktionen rausschmeissen musste). Laufen tut das prog jetzt also, aber wenn jemand noch eine Idee hat wie ich ein im Formular integriertes preview überzeugen kann einen vom user ausgewählten Drucker zu nehmen wäre ich mehr als dankbar. |
Re: Druckdialog in QRPreview
Delphi-Quellcode:
So funktioniert es auch mit einem Preview. Schummeln ist nicht nötig.
Procedure Button....
QRPreview1.QRPrinter.PrintSetup; QRPreview1.QRPrinter.Print; end; |
Re: Druckdialog in QRPreview
SOLLTE damit funktionieren... TAT es nur leider nicht!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz