AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fastreport druckt nicht

Ein Thema von borstenei · begonnen am 10. Apr 2018 · letzter Beitrag vom 5. Jun 2021
Antwort Antwort
borstenei

Registriert seit: 11. Nov 2011
121 Beiträge
 
#1

AW: Fastreport druckt nicht

  Alt 11. Apr 2018, 10:11
nein hier leider nicht
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#2

AW: Fastreport druckt nicht

  Alt 11. Apr 2018, 10:35
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
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (11. Apr 2018 um 10:42 Uhr)
  Mit Zitat antworten Zitat
borstenei

Registriert seit: 11. Nov 2011
121 Beiträge
 
#3

AW: Fastreport druckt nicht

  Alt 11. Apr 2018, 11:08
Danke Dir für deine Tipps. Ich schaue mal wie ich da weiter komme.
..aber der Aufruf zum drucken unterscheidet sich wirklich nur in
PrintFrm.frxReport1.ShowReport oder
PrintFrm.frxReport1.Print ...sehr seltsam
  Mit Zitat antworten Zitat
ensaron

Registriert seit: 29. Aug 2008
Ort: 10369 Berlin
63 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Fastreport druckt nicht

  Alt 11. Apr 2018, 13:54
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.
  Mit Zitat antworten Zitat
borstenei

Registriert seit: 11. Nov 2011
121 Beiträge
 
#5

AW: Fastreport druckt nicht

  Alt 11. Apr 2018, 22:57
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.
...tatsächlich dann druckt er direkt. Aber das ist so schlecht umsetzbar in der Praxis.. da das Programm an verschiedenen PC's zum Einsatz kommt und ich jetzt erst den Druckernamen ermitteln müsste und ich kann so nur wieder über Umwege die Druckoptionen ändern.
Was ist hier das Problem?
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.368 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Fastreport druckt nicht

  Alt 12. Apr 2018, 06:30
...tatsächlich dann druckt er direkt. Aber das ist so schlecht umsetzbar in der Praxis.. da das Programm an verschiedenen PC's zum Einsatz kommt und ich jetzt erst den Druckernamen ermitteln müsste und ich kann so nur wieder über Umwege die Druckoptionen ändern.
Was ist hier das Problem?
Vermutlich musst du nach dem PrinterDialog den ausgewählten Drucker noch dem Fastreport zuweisen. Vielleicht greift FR nicht automatisch darauf zu.
Peter
  Mit Zitat antworten Zitat
ensaron

Registriert seit: 29. Aug 2008
Ort: 10369 Berlin
63 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Fastreport druckt nicht

  Alt 12. Apr 2018, 07:11
Vermutlich musst du nach dem PrinterDialog den ausgewählten Drucker noch dem Fastreport zuweisen.
Nein, die Anzeige des Druckerdialogs erfolgt in der Prozedur, die auch den Druck durchführt. Da ist kein manueller Eingriff notwendig.

@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.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Fastreport druckt nicht

  Alt 12. Apr 2018, 07:31
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;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 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