![]() |
Fastreport druckt nicht
Ich habe hier 2 Anwendungen die nur noch Reports ausdrucken wenn ich den Umweg über die Preview gehe...was mache ich hier falsch?..das hat doch alles mal funktioniert...einmal mit Delphi 10.1 und Fastreport 5 und einmal mit Delphi 10.2.3 und Fastreport 5 in beiden Fällen funktioniert das drucken über die Vorschau einwandfrei.....
Delphi-Quellcode:
mit
PrintFrm.frxReport1.ShowReport
Delphi-Quellcode:
funktioniert es nicht ..obwohl beide Mal de selbe Druckdialog angezeigt wird.....
PrintFrm.frxReport1.Print;
|
AW: Fastreport druckt nicht
Vor dem Print das PrepareReport aufgerufen?
|
AW: Fastreport druckt nicht
nein auch ein :
Delphi-Quellcode:
hilft nicht, es druckt nicht obwohl der selbe Dialog wie im Preview aufgerufen wird.???
PrintFrm.frxReport1.PrepareReport(True);
|
AW: Fastreport druckt nicht
Ich benutze Fastreport 6, aber ich denke nicht, dass das an der Stelle einen Unterschied macht. Folgendes funktioniert bei mir sowohl unter XE6 als auch 10.2 problemlos:
Delphi-Quellcode:
edit:
FReport.PrintOptions.ShowDialog := False;
FReport.PrintOptions.Copies := 1; FReport.PrintOptions.Printer := 'PDFCreator'; FReport.PrepareReport; FReport.Print;
Delphi-Quellcode:
tut ebenfalls was es soll.
FReport.PrintOptions.ShowDialog := True;
FReport.PrepareReport; FReport.Print; |
AW: Fastreport druckt nicht
nein hier leider nicht:shock:
Es wird der Druckdialog aufgerufen aber er druckt nicht. Ich kann z.b. direkt in eine PDF speichern ohne Probleme nur drucken ohne den Umweg der Vorschau ist nicht möglich. Was übersehe ich hier?... Wie könnte ich dem Problem auf die Spur kommen? |
AW: Fastreport druckt nicht
Wenn keine Seiten generiert werden, dann wird auch nichts gedruckt.
Sicher, dass dort auch Seiten raus kommen können? DataSet nicht gefüllt, oder sowas. In PrepareReport und Print reindebuggen und schauen was die (anders) machen. Oder erstmal schauen ob und wann bei beiden Varianten zugehörige Events aufgerufen werden. OnProgressStart OnProgress OnProgressStop OnStartReport OnStopReport ... OnPrintPage OnPrintReport OnAfterScriptCompile ... oder so |
AW: Fastreport druckt nicht
Danke Dir für deine Tipps. Ich schaue mal wie ich da weiter komme.
..aber der Aufruf zum drucken unterscheidet sich wirklich nur in
Delphi-Quellcode:
oder
PrintFrm.frxReport1.ShowReport
Delphi-Quellcode:
...sehr seltsam
PrintFrm.frxReport1.Print
|
AW: Fastreport druckt nicht
Hast du mal probiert, ob der Druck funktioniert, wenn du ihn ohne Druckdialog ausführst? Also wie in meinem ersten Quelltext-Block mit Zuweisung des Druckers anhand des Namens.
|
AW: Fastreport druckt nicht
Zitat:
Was ist hier das Problem? |
AW: Fastreport druckt nicht
Zitat:
|
AW: Fastreport druckt nicht
Zitat:
@borstenei: Hast du denn bei Auswahl des Druckers über den Druckdialog und bei dem funktionieren Ausdruck über Angabe des Druckernamens jeweils den gleichen Drucker benutzt? Wenn ja, müsstest du mal in die Funktion TfrxPreviewPages.Print reindebuggen (Unit frxPreviewPages). Der einzige Unterschied beim Aufruf mit Druckernamen vs. mit Druckdialog sollte ja die Anzeige des Druckdialogs sein. Falls in den beiden Fällen der nachfolgende Quelltext unterschiedlich durchlaufen wird, hast du schonmal einen Anhaltspunkt an welcher Stelle dein Problem liegt. |
AW: Fastreport druckt nicht
Vielleicht hilft Dir ja einer der Schnippsel hier um ans Ziel zu kommen.
Delphi-Quellcode:
uses Printers;
// so könnte man den Standard-Drucker-Namen und sein Port ermitteln procedure TForm1.Button1Click(Sender: TObject); var MyPrinter, MyDriver, MyPort: array[0..100] of Char; DevMode: THandle; begin Printer.GetPrinter(MyPrinter, MyDriver, MyPort, DevMode); Label1.Caption:=MyPrinter; Label2.Caption:=MyPort; end; // so könnte man alle Drucker ermitteln procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Lines.Assign(Printer.Printers); end; // so könnte man die DPI vom Drucker ermitteln procedure TForm1.Button3Click(Sender: TObject); begin Label3.Caption := IntToStr(GetDeviceCaps(Printer.Handle, LOGPIXELSX)) + ' x '+IntToStr(GetDeviceCaps(Printer.Handle, LOGPIXELSY))+ ' DPI (dots per inch)'; end; // so könnte man die eingelegte papiergröße ermitteln procedure TForm1.Button4Click(Sender: TObject); var papermmx, papermmy: Extended; begin Printer.BeginDoc; { PHYSICALWIDTH = Dots horizontal of the paper LOGPIXELSX = DPI (Dots per Inch) 25.4 = To calculte Inch to Millimeter } papermmx:=GetDeviceCaps(Printer.Canvas.Handle,PHYSICALWIDTH)/ GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX) * 25.4; papermmy:=GetDeviceCaps(Printer.Canvas.Handle,PHYSICALHEIGHT)/ GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSY) * 25.4; with printer.canvas do begin TextOut(200,100,floattostr(papermmx)+' mm x '+floattostr(papermmy)+' mm'); end; Printer.EndDoc; end; |
AW: Fastreport druckt nicht
Druckst du auch das richtige Format? US/Legal vs. A4 oder so, falls das eine Rolle spielt.
Zitat:
|
AW: Fastreport druckt nicht
Gab es denn für das hier beschriebene Problem eine Lösung. Bei mir lande ich auch bei einem Rechner nach Aufruf der Preview und click auf den Druck-Button im Speichern Dialog
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 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