Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   FastReport Report drucken (https://www.delphipraxis.net/178404-fastreport-report-drucken.html)

althoff 6. Jan 2014 14:44

FastReport Report drucken
 
Hallo zusammen,

ich habe eine Frage bzgl. des Druckens eines Reports aus FastReport. Ich muss dazu sagen, dass ich sowohl Delphi als auch FastReport nur zu einem kleinen Teil verstehe :oops:

Ich möchte gerne je Datensatz einen eigenen Report drucken. Ich habe zwar die Option gefunden, einen neue Seite je Datensatz zu beginnen, doch ich benötige eben einen komplett eigenen Druckauftrag um daraus einzelne pdf-Dateien zu generieren. Gibt es dafür eine Möglichkeit?

Ich habe es schon mit einer Schleife probiert:

Delphi-Quellcode:
procedure TfrxReportOnReportPrint (Sender: TfrxComponent);
begin
          for i := 1 to 999 do
          begin
          if i = <frxdsqryVerbrauch."Kundennummer"> then                                                              
              tfrxreport.showreport
          end;
end;
Aber die zeigt mir natürlich alle Datensätze / Seiten weiterhin hintereinander an. Meine Idee war, zu sagen "showreport where Kundennummer = i" (das hätte ich in vba auch so hinbekommen aber ich habe keine passende Syntax dazu gefunden.
Oder bin ich komplett auf dem Holzweg? Am liebsten wäre mir natürlich so eine Option wie diese "Neue Seite" die ich nur anklicken muss :wink:

Vielen Dank schon einmal für die Hilfe!

Furtbichler 6. Jan 2014 17:04

AW: FastReport Report drucken
 
Du must dann pro Datensatz einen Report erstellen und diesen selbst exportieren. Hab aber gerade kein Codeschnipsel parat.

Union 6. Jan 2014 18:34

AW: FastReport Report drucken
 
Du kannst die PDF-Seiten auch einzeln aus dem Gesamtreport erstellen, etwa so (ohne Garantie):
Delphi-Quellcode:
var
   i : integer;
begin
   frxPDFExport1.ShowDialog := False;
   frxReport1.PrepareReport;
   for i := 0 to frxReport1.PreviewPages.Count do
   begin
      frxPDFExport1.FileName := Format('Page%d.pdf', [i+1]);
      frxPDFExport1.StartPage(frxReport1.PreviewPages.Page[0], i);
      frxPDFExport1.FinishPage(frxReport1.PreviewPages.Page[0], i);
      frxReport1.Export(frxPDFExport1);
   end;
end;

Sir Rufo 7. Jan 2014 00:44

AW: FastReport Report drucken
 
Folgende Möglichkeiten:
  1. Im Report selber kann man angeben wieviele Datensätze (z.B. 1)verarbeitet werden sollen. Dann beim Durchlaufen der Sätze jeweils den Report drucken.
  2. Setze Delphi-Referenz durchsuchenTDataset.Filter mit der passenden Einschränkung und Delphi-Referenz durchsuchenTDataset.Filtered auf
    Delphi-Quellcode:
    True
und noch ein paar weitere, die aber immer komplexer werden ;)

althoff 7. Jan 2014 08:45

AW: FastReport Report drucken
 
Danke für Eure Antworten!

Mir scheint der Ansatz von Sir Rufo ganz passend. Ich hatte mir diese Einstellung schon einmal vorgenommen aber ich habe nicht rausbekommen wie man das dann genau aktiviert. Das probiere ich noch einmal aus und berichte anschließend.

Einzelne pdf-Seiten hatte ich auch schon erstellt, allerdings kann ich leider nicht ausschließen, dass der Report bei manchen Datensätzen 2-seitig ist. Dann wird es wieder umständlich. Deswegen hatte ich den Plan wieder verworfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr.

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