AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge FastReport - mehrere DS in einer PDF-Datei-
Thema durchsuchen
Ansicht
Themen-Optionen

FastReport - mehrere DS in einer PDF-Datei-

Ein Thema von HPB · begonnen am 23. Jan 2016 · letzter Beitrag vom 26. Jan 2016
Antwort Antwort
Seite 2 von 3     12 3      
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#11

AW: FastReport - mehrere DS in einer PDF-Datei-

  Alt 25. Jan 2016, 07:25
Viele Wege führen nach Rom. Friede sei mit uns...
siehste - 2 unterschiedliche Meinungen und doch denken wir das selbe
Vielen Dank für Eure Anregungen.
Noch eine Frage an Lemmy.
So wie ich diesen Teil verstehe:

Delphi-Quellcode:
  frPart.LoadFromFile(<>);
  frPart.PrepareReport(true);
  frMain.Pages.AddPrepared(frPart.Page)

Werden zuerst alle zu erzeugenden Reports in eine Datei gespeichert und dann wieder eingelesen
und zu dem Report addiert? Werde ich nachher mal testen.

Mit Gruß
HPB
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: FastReport - mehrere DS in einer PDF-Datei-

  Alt 25. Jan 2016, 07:33
Werden zuerst alle zu erzeugenden Reports in eine Datei gespeichert und dann wieder eingelesen
und zu dem Report addiert? Werde ich nachher mal testen.
Nein.. du machst einen Schleife um deine Datensätze (Hauptdatensätze). Für jeden Datensatz erzeugst Du nun die eine Seite und speicherst diese dann in einer anderen frxReport Komponente "zwischen":



Delphi-Quellcode:
   
  while NOT qry.EOF do
  begin
    frPart.LoadFromFile('meinReport.fr3');
    frPart.PrepareReport(true);
    frMain.Pages.AddPrepared(frPart.Page);
    qry.Next;
  end;
  ExportToPDF(frMain);
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#13

AW: FastReport - mehrere DS in einer PDF-Datei-

  Alt 25. Jan 2016, 07:56
Werden zuerst alle zu erzeugenden Reports in eine Datei gespeichert und dann wieder eingelesen
und zu dem Report addiert? Werde ich nachher mal testen.
Nein.. du machst einen Schleife um deine Datensätze (Hauptdatensätze). Für jeden Datensatz erzeugst Du nun die eine Seite und speicherst diese dann in einer anderen frxReport Komponente "zwischen":



Delphi-Quellcode:
   
  while NOT qry.EOF do
  begin
    frPart.LoadFromFile('meinReport.fr3');
    frPart.PrepareReport(true);
    frMain.Pages.AddPrepared(frPart.Page);
    qry.Next;
  end;
  ExportToPDF(frMain);
Meine Version von Fastreport kennt diesen Teil nicht:
    frMain.Pages.AddPrepared(frPart.Page); Dafür aber diese:
Delphi-Quellcode:
      frxrprtPart.LoadFromFile(PfadReport + '\' + 'bruder-daten.fr3');
      frxrprtPart.PrepareReport(True);
      frxReport1.Page.AssignAll(frxrprtPart.Page);
Ob dies das Richtige ist, werde ich nachher test.
Gruß und eine nette Woche
HPB
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#14

AW: FastReport - mehrere DS in einer PDF-Datei-

  Alt 25. Jan 2016, 11:33
Werden zuerst alle zu erzeugenden Reports in eine Datei gespeichert und dann wieder eingelesen
und zu dem Report addiert? Werde ich nachher mal testen.
Nein.. du machst einen Schleife um deine Datensätze (Hauptdatensätze). Für jeden Datensatz erzeugst Du nun die eine Seite und speicherst diese dann in einer anderen frxReport Komponente "zwischen":



Delphi-Quellcode:
   
  while NOT qry.EOF do
  begin
    frPart.LoadFromFile('meinReport.fr3');
    frPart.PrepareReport(true);
    frMain.Pages.AddPrepared(frPart.Page);
    qry.Next;
  end;
  ExportToPDF(frMain);
Meine Version von Fastreport kennt diesen Teil nicht:
    frMain.Pages.AddPrepared(frPart.Page); Dafür aber diese:
Delphi-Quellcode:
      frxrprtPart.LoadFromFile(PfadReport + '\' + 'bruder-daten.fr3');
      frxrprtPart.PrepareReport(True);
      frxReport1.Page.AssignAll(frxrprtPart.Page);
Ob dies das Richtige ist, werde ich nachher test.
Gruß und eine nette Woche
HPB
Ich habe nun getestet.
Ich finde einfach keinen Weg.
 frxReport1.Page.AssignAll(frxrprtPart.Page) und dies frMain.Pages.AddPrepared(frPart.Page); geht mit meinem FastReport 4.0 nicht. FastReport bietet auch keine andere Optionen
wie z. B. "Page.Add" an.
Wie kann man das bloß lösen?
So langsam verzweifle ich.
Mit gruß HPB
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#15

AW: FastReport - mehrere DS in einer PDF-Datei-

  Alt 25. Jan 2016, 12:02
Kannst Du nicht einfach einen Master-Detail Report daraus machen?
Du übergibst dem Report die 32 Masterdaten und die entsprechenden Detaildaten.
Dann kann der Report automatisch pro Datensatz eine Seite erstellen.
Der PDF Export ist dann ganz einfach.
(oder habe ich da was wichtiges überlesen)

Geändert von EarlyBird (25. Jan 2016 um 12:09 Uhr)
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#16

AW: FastReport - mehrere DS in einer PDF-Datei-

  Alt 25. Jan 2016, 13:45
Kannst Du nicht einfach einen Master-Detail Report daraus machen?
Du übergibst dem Report die 32 Masterdaten und die entsprechenden Detaildaten.
Dann kann der Report automatisch pro Datensatz eine Seite erstellen.
Der PDF Export ist dann ganz einfach.
(oder habe ich da was wichtiges überlesen)
Guten EarlyBird,
es sollen alle n-Datensätze in einer PDF-Datei zusammengefast werden.
Also nicht n-Einzelseiten sondern eine eizige Seite.
Mit Gruß
HPB
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: FastReport - mehrere DS in einer PDF-Datei-

  Alt 25. Jan 2016, 13:54
es sollen alle n-Datensätze in einer PDF-Datei zusammengefast werden.
Also nicht n-Einzelseiten sondern eine eizige Seite.
Du willst die Quadratur des Kreises, oder diese Anforderung passt nicht mehr zur Ausgangsfrage:
Pro Datensatz wird eine Seite gedruckt.
Bei 32 Datensätzen eben 32 einzelne Seiten.
So weit so gut.
Jetzt sollen aber die 32 Seiten in einem
einzigen Rutsch in einer PDF-Datei erzeugt werden.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#18

AW: FastReport - mehrere DS in einer PDF-Datei-

  Alt 25. Jan 2016, 14:12
Für jeden Datensatz im frxBruderDaten DataSet möchtest Du eine Seite erzeugen?
Alle Seiten sollen zusammenhängend in einem PDF Dokument exportiert werden?

Oder sind Daten der frxBruderDaten Tabelle nicht eindeutig!? Dann gruppiere die Daten in einer SQL abfrage.

Dann kann man es mit dem Master-Detail Report machen.
frxBruderDaten als Dataset in einem Masterband einfügen.
Eigenschaft "StartNewPage" des Maserbandes auf true.

Was in die Detaildaten kommt kann ich Deinem Report nicht entnehmen.
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#19

AW: FastReport - mehrere DS in einer PDF-Datei-

  Alt 25. Jan 2016, 14:42
Für jeden Datensatz im frxBruderDaten DataSet möchtest Du eine Seite erzeugen?
Alle Seiten sollen zusammenhängend in einem PDF Dokument exportiert werden?

Oder sind Daten der frxBruderDaten Tabelle nicht eindeutig!? Dann gruppiere die Daten in einer SQL abfrage.

Dann kann man es mit dem Master-Detail Report machen.
frxBruderDaten als Dataset in einem Masterband einfügen.
Eigenschaft "StartNewPage" des Maserbandes auf true.

Was in die Detaildaten kommt kann ich Deinem Report nicht entnehmen.
Es ist schon richtig. Jeder Datensatz benötigt eine oder zwei A4 Seite/n.
Alle erzeugten Datensätze sollen zusammenhängend in ein PDF-Dokument ausgegeben werden.

Die Daten werden jetzt so selektiert:
Delphi-Quellcode:
  pNode := VstAdressen.GetFirstVisible;
  while Assigned(pNode) do
  begin
    if VstAdressen.CheckState[pNode] = csCheckedNormal then
    begin
      Inc(i);
      pDaten := TOAdressVSTDaten(VstAdressen.GetNodeData(pNode)^);
      pAdressID := pDaten.FAdressID;

      ibqryBruderDaten.close;
      ibqryBruderDaten.SQL.Clear;
      ibqryBruderDaten.SQL.Add('select * from ADRESSEN, logenaemter ');
      ibqryBruderDaten.SQL.Add('where adressen.ADRESSID = :pAdressID ');
      ibqryBruderDaten.SQL.Add('and logenaemter.FKADRESSID = ' +
        'adressen.Adressid ');

      ibqryBruderDaten.Prepare;
      ibqryBruderDaten.ParamByName('pAdressID').Value := pAdressID;

      ibqryRepEhrungen.Close;
      ibqryRepEhrungen.Prepare;
      ibqryRepEhrungen.ParamByName('pAdressid').Value := pAdressID;
// frxrprtPart.LoadFromFile(PfadReport + '\' + 'bruder-daten.fr3');
// frxrprtPart.SaveToFile('D:\report' + '-'+ IntToStr(i) + '.fr3');
      frxrprtPart.PrepareReport(True);
// frxReport1.Page.AssignAll(frxrprtPart.Page, True);
      frxReport1.LoadFromFile(PfadReport + '\' + 'bruder-daten.fr3');

      if pSofortDrucken then
      begin
        frxReport1.PrintOptions.ShowDialog := False;
        frxReport1.PrintOptions.Printer := Drucker;
        if frxReport1.PrepareReport then
          frxReport1.Print;
      end
      else
      begin
        if frxReport1.PrepareReport then
          frxReport1.ShowReport;
      end;
      VstAdressen.CheckState[pNode] := csUncheckedNormal;
    end;
    pNode := VstAdressen.GetNextVisible(pNode);
  end;

-----------------------

Zu SirRufo,
vielleicht habe ich mich nicht konkret genug geäußert.

Mit Gruß
HPB

HPB
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#20

AW: FastReport - mehrere DS in einer PDF-Datei-

  Alt 25. Jan 2016, 14:49
Ah, jetzt kommt doch etwas Licht ins Dunkle

Du gehst durch eine Liste und für jeden selektierten Eintrag lässt du einen Bericht erzeugen. Dadurch bekommst du natürlich auch n einzelne Berichte und somit erst einmal auch n einzelne PDF-Dokumente.

Es wäre besser, wenn du die selektierten Einträge sammeln und dann in einem Rutsch an den Bericht übergeben würdest, dann hättest du ein Problem weniger.

Wohin du sammelst ist egal, denn der FR kann mit einem DataSet oder auch einer schnöde Liste (TfrxUserDataSet ) gleichermassen umgehen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 17:49 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