AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge FastReport: Mehrere Gruppen verschachteln
Thema durchsuchen
Ansicht
Themen-Optionen

FastReport: Mehrere Gruppen verschachteln

Ein Thema von kretabiker · begonnen am 9. Okt 2014 · letzter Beitrag vom 9. Okt 2014
Antwort Antwort
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 12 Athens
 
#1

FastReport: Mehrere Gruppen verschachteln

  Alt 9. Okt 2014, 09:18
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
Udo Treichel
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: FastReport: Mehrere Gruppen verschachteln

  Alt 9. Okt 2014, 11:14
Moin...

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.
  Mit Zitat antworten Zitat
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 12 Athens
 
#3

AW: FastReport: Mehrere Gruppen verschachteln

  Alt 9. Okt 2014, 11:44
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?
Udo Treichel
  Mit Zitat antworten Zitat
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 12 Athens
 
#4

AW: FastReport: Mehrere Gruppen verschachteln

  Alt 9. Okt 2014, 18:23
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äß.
Udo Treichel
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:13 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