Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   FastReport - mehrere DS in einer PDF-Datei- (https://www.delphipraxis.net/188010-fastreport-mehrere-ds-einer-pdf-datei.html)

HPB 25. Jan 2016 15:06

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

Zitat von Sir Rufo (Beitrag 1328138)
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 (
Delphi-Quellcode:
TfrxUserDataSet
) gleichermassen umgehen.

Aber das Wie ist mir unklar.
Hast Du nicht mal ein WorkAround??
Mit Gruß
HPB

p80286 25. Jan 2016 17:01

AW: FastReport - mehrere DS in einer PDF-Datei-
 
wie wäre es z.B. so:
Delphi-Quellcode:
ibqryBruderDaten.SQL.Text=
'select *  '+
'from ADRESSEN join logenaemter on (logenaemter.FKADRESSID = adressen.Adressid) '+ 
'where adressen.ADRESSID in ('+ ADRIDliste + ')';
Und die adridliste bastelst Du Dir hier zusammen:
Delphi-Quellcode:
  if VstAdressen.CheckState[pNode] = csCheckedNormal then
     begin
       Inc(i);
       pDaten := TOAdressVSTDaten(VstAdressen.GetNodeData(pNode)^);
       pAdressID := pDaten.FAdressID;

       adridliste:=adridlist+','''+pAdressID+''''
Gut schön (und gut) ist anders, aber nur mal so als Idee.

Gruß
K-H

EarlyBird 25. Jan 2016 17:07

AW: FastReport - mehrere DS in einer PDF-Datei-
 
erstelle Dir zwei Datasets (Master und Detail) mit allen Daten die gedruckt werden sollen:
z.B
Code:
Master:
select * from ADRESSEN
  where (adressen.ADRESSID in (1, 2, 4, 5, 9, 17))
  order by adressen.Adressid)

Detail:
select * from Ehrungen
  where (Ehrungen.ADRESSID in (1, 2, 4, 5, 9, 17))
  order by Ehrungen.Adressid)
Stelle eine Master-Detail Beziehung zwischen den beiden Datasets her

Dann in deinem Report
ein MasterBand mit dem Masterdataset verbinden
und ein DetailBand mit dem Detaildataset verbinden.
Eigenschaft "StartNewPage" des Maserbandes auf true.

So sollte es funktionieren

Lemmy 25. Jan 2016 18:10

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

Zitat von HPB (Beitrag 1328094)

Ich habe nun getestet.
Ich finde einfach keinen Weg.

sorry, ich habe den COde aus einem alten Post von mir geklaut, ich war der Meinung dass der passt. Ich habe jetzt ne Stunde lang mein altes Repository durchsucht bis ich bemerkt habe, dass ich den Stand in dem ich das implementiert hatte, gar nicht mehr habe (nicht haben darf). Ich habe jetzt ein Ticket bei Fast-Report gemacht, weil es mich selbst interessieren würde wie das ging....

madas 25. Jan 2016 21:56

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

Zitat von Lemmy (Beitrag 1328179)
Ich habe jetzt ein Ticket bei Fast-Report gemacht, weil es mich selbst interessieren würde wie das ging....

Warum denn nun dies? Alles was Du zur Lösung des Problems brauchst, wurde Dir hier doch mehr als einmal dargelegt.
Verstehe nun wirklich nicht was daran so schwer sein soll. Mal als Schnellschuss:

- frxReport-Komponente auf die Form gelegt
- frxPDF-Export-Komponente auf die Form gelegt und mit dem Report verknüpfen
- UIB Dataset für Masterdaten und UIB Dataset für Detaildaten auf die Form gelegt und mit den entsprechenden Query versehen; beim Masterdataset als Parameter die Liste mit den AdressIDs vorsehen und beim Detaildataset nur einen Parameter für die jeweils aktuelle AdressID vom MasterDataset
- für jedes UIB Dataset noch ein frxDataSet auf die Form gelegt und mit den UIB-Dataset verknüpfen
- beim UIB-Masterdataset noch den AfterScroll-Event abgreifen und dort das UIB-DetailDataset schließen, vom MasterDataset die aktuelle AdressID auslesen und dem vorher in der Detail-Query erstelltem Parameter zuweisen. DetailDataset wieder öffnen
- Im Report selber dann ein MasterDataBand auf den Report legen und das frxMasterDataset zuweisen; ein DetailBand darunter legen und ihm das frxDetailDataset
- beim MasterDataband die Eigenschaft für "StartNewPage" auf true setzen

Это все.

Lemmy 26. Jan 2016 05:30

AW: FastReport - mehrere DS in einer PDF-Datei-
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen,

Mea Culpa....

das Hinzufügen ging über die PreviewPages:

Delphi-Quellcode:
frxReport2.PreviewPages.LoadFromFile('2.fp3');
frxReport2.PrepareReport(true);
frxReport1.PreviewPages.AddFrom(frxReport2);
Beispiel anbei (Delphi 7 + FR5)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:34 Uhr.
Seite 3 von 3     123   

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