![]() |
FastReport: Mehrere Gruppen verschachteln
Hallo Könner,
obwohl ich schon seit mehreren Jahren mit FastReport arbeite und bislang alle Reportfragen lösen konnte, bin ich jetzt auf ein Problem gestoßen, zu dem ich keinen Lösungsansatz erkenne. Die Aufgabe: Gegeben sei ein Report *Gutschein*, auf der zunächst die *Leistungen* als Liste und dann die Namen der *Personen*, die die Leistungen gekauft haben, aufgeführt werden sollen. Die *Personen* sind Details zu den *Leistungen*. Gruppierungsmerkmal ist die Gutscheinnummer. Die Ausgabe erfolgt als Seriendruck für für 1 bis n Gutscheine. In einem normalen Master-Detail-Report würden die Personen nun nach jeder Leistung gedruckt werden. Dass soll hier nicht der Fall sein, sondern es sollen zunächst alle Leistungen en bloc und danach erst alle Personen en bloc gedruckt werden. Mir macht das doppelte en bloc die Probleme, dafür habe ich keinen Ansatz. Hat jemand eine Idee dazu? Viele Grüße Udo |
AW: FastReport: Mehrere Gruppen verschachteln
Moin... 8-)
In welcher Form liegen denn die Daten vor? Das einfachste Grundprinzip ist immer: Die Daten schon so gruppiert dem Report übergeben wie man es sehen möchte. Bedeutet in deinem Fall, die Personen als separate Daten um sie unten anhängen zu können... in einem ChildBand mit Subreport z.B. ...hoffe dich richtig verstanden zu haben. :P |
AW: FastReport: Mehrere Gruppen verschachteln
Moin Haentschman,
die Daten liegen in In-Memory-Tabellen aufbereitet vor und werden via TfrxDBDataset an den Report übergeben. Das sieht dann schematisch in etwa so aus: Tabelle Gutscheinleistungen: GutscheinNummer Leistungsnummer Leistungsbezeichnung Leistungsdatum... Tabelle Gutscheinpersonen Gutscheinnummer Leistungsnummer NamePerson... Das bedeutet, das jeder Leistung 1 - n Personen zugeordnet sind. Gedruckt werden sollen zunächst die Leistungen eines Gutscheins, dann die Personen, und zwar jeweils als Block und nicht hinter jeder Leistung. Das soll schematisch in etwa so aussehen: Gutschein Nr. 1 Leistung 1.1 Leistung 1.2 (...) Person 1.1 Person 1.2 (...) (--------Seitenumbruch -------------) Gutschein Nr. 2 Leistung 2.1 Leistung 2.2 Person 2.1 Person 2.2 (-------Seitenumbruch---------------) usw. Im Prinzip wären es zwei Masterbänder in einer nach Gutscheinnummer gruppierenden Gruppe, die jeweils nur die Daten der aktuellen Gutscheinnummer ausgeben - aber genau das geht nicht, da hänge ich fest. Einfaches Master-Detail geht nicht, dann würden die Personen nach jedem Leistungseintrag gedruckt werden. *kopfkratz* War das Geschreibsel verständlich? Ich habe gerade nen ordentlichen Knoten im Kopf. Hm, da kommt mir gerade die Idee, die Personendaten so aufzubereiten, dass sie nur in die Personentabelle geschrieben werden für die letzte Leistung vor dem Gutscheinnummmerwechsel. Dann müsste es auch mit Master-Detail funktionieren. Oder siehst du / sieht jemand noch eine andere Möglichkeit? |
AW: FastReport: Mehrere Gruppen verschachteln
Ich antworte mir mal selbst, falls mal jemand eine ähnliche Aufgabenstellung hat: Problem wie skizziert gelöst, indem die Personen nur bei der letzten Leistung in die Detailtabelle geschrieben werden. So funktioniert es wunschgemäß.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 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