Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fastreport und TPrintDialog (https://www.delphipraxis.net/68217-fastreport-und-tprintdialog.html)

Karstadt 27. Apr 2006 07:52

Re: Fastreport und TPrintDialog
 
Delphi-Quellcode:

  dm.PrintDialog.Copies := dm.frxReport.PrintOptions.Copies;
  dm.PrintDialog.Collate := dm.frxReport.PrintOptions.Collate;
  IF dm.PrintDialog.Execute then
  begin
    dm.frxReport.PrintOptions.Copies := dm.PrintDialog.Copies;
    dm.frxReport.PrintOptions.Collate := dm.PrintDialog.Collate;
    //Ladedatei und drucke
  end;

Gedruckr wird aber auf dem Standard drucker obwohl ich einen anderen ausgewählt habe

franktron 27. Apr 2006 19:14

Re: Fastreport und TPrintDialog
 
Zitat:

Zitat von Karstadt
Delphi-Quellcode:

  dm.PrintDialog.Copies := dm.frxReport.PrintOptions.Copies;
  dm.PrintDialog.Collate := dm.frxReport.PrintOptions.Collate;
  IF dm.PrintDialog.Execute then
  begin
    dm.frxReport.PrintOptions.Copies := dm.PrintDialog.Copies;
    dm.frxReport.PrintOptions.Collate := dm.PrintDialog.Collate;
    //Ladedatei und drucke
  end;

Gedruckr wird aber auf dem Standard drucker obwohl ich einen anderen ausgewählt habe

Du must erst die Datei laden und dann die sachen ändern. Weil in der FR3 Datei kann auch der Drucker mitgespeichert werden

franktron 27. Apr 2006 19:16

Re: Fastreport und TPrintDialog
 
Nachtrag was hat den der Code für einen Sinn wenn man normal mit FR druckt kommt doch ein Druckerdialog

Karstadt 28. Apr 2006 07:35

Re: Fastreport und TPrintDialog
 
Das ist richtig! Wenn man die Funktion Report.Print aufruf kommt es zu einem Druckdialog! Aber wenn ich eine Druckverwaltung habe mit 100 Dokumenten dann will ich vielleicht alle 100 Druckdokumenten auf einen anderen drucke ausdrucken, weil der Standard Drucker momentan Offline ist. Das soll definitiv per Auswahl eines Drucker gelöst werdem. Das ist die Ausganssituation.

Sharky 28. Apr 2006 07:48

Re: Fastreport und TPrintDialog
 
Hai Karstadt,

in diesem Fall würde ich an einem zentralen Punkt des Programmes (Im Hauptmenü) die Auswahl des Druckers anbiete.
Jetzt aber nicht den Standarddrucker von Windows ändern. Das gehört sich nicht für ein Programm sonder mit der Methode .ChangePrinter() von TfrReport den Drucker immer vor dem Ausdruck ändern.

Karstadt 28. Apr 2006 08:21

Re: Fastreport und TPrintDialog
 
Ich stehe auf dem Schlauch.

Du meinst doch die Komponente TfrxReport und dort soll eine Methode namens ChangePrinter geben?

frxReport.habe.ich.aber.nicht warum?

Sharky 28. Apr 2006 08:57

Re: Fastreport und TPrintDialog
 
Hai Karstadt,

es wurde wohl einiges in der 3.x geändert. Ich habe mir die jetzt mal schnell installiert und mir dieses Beispiel gebaut:
Delphi-Quellcode:
uses
  Printers;

procedure TDemoForm.FormCreate(Sender: TObject);
var
  ndx: Integer;
begin
  for ndx := 0 to Printer.Printers.Count - 1 do // Alle installierten Drucker
  begin
    ComboBox1.Items.Add(Printer.Printers[ndx]); // in einer ComboBox auflisten
  end;
end;

procedure TDemoForm.Button1Click(Sender: TObject);
begin
  with frxReport1 do
  begin
    PrintOptions.Printer := ComboBox1.Text; // Als Drucker den aus der ComboBox nehmen.
    PrintOptions.ShowDialog := FALSE; // Kein Dialog notwendig
    PrepareReport(); // Vorbereiten
    Print; // und weg damit
  end;
end;

Karstadt 28. Apr 2006 09:02

Re: Fastreport und TPrintDialog
 
Danke! Das hat funktioniert SUPER! :-D

Karstadt 28. Apr 2006 09:06

Re: Fastreport und TPrintDialog
 
Delphi-Quellcode:
cbx_drucker.Items := Printer.Printers;
TURBO :) Jetzt muss ich nur rausfinden welche Drucker der standard drucke ist und fertig ;)

Sharky 28. Apr 2006 09:14

Re: Fastreport und TPrintDialog
 
Zitat:

Zitat von Karstadt
... Jetzt muss ich nur rausfinden welche Drucker der standard drucke ist und fertig ;)

Printer.PrinterIndex gibt den Standarddrucker an.
Delphi-Quellcode:
begin
  ComboBox1.Items := Printer.Printers;
  ComboBox1.ItemIndex := Printer.PrinterIndex;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz