Autor Beitrag
tommy
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 10.04.03 07:23 
Hallo,

ich hoffe mir kann jemand helfen. Ich bin neu in Delphi und muss jetzt mit Fastreport Reports erstellen. Habe Probleme in der Struktur.
Ich habe 6 Tabellen aus dennen die Daten kommen. Habe 3 verschiedene Abfragen. Hauptpositionen, Einzelpositionen und Optionen.
Die müssten folgendermaßen angeordnet werden.

Hauptpos

Einzelpos

Optionen

Wie kann ich Fastreport sagen, was zusammen gehört. Hauptpos 1 mit 3 Einzelpos, dann Hauptpos2 usw.
Kann man das vielleicht mit Programmierung lösen?
Wäre dankbar für eure Hilfe :roll:
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Do 10.04.03 08:41 
Hi
zunächst mal musst du auf jeden Fall dafür sorgen, dass deine Tabellen/Abfragen über eine Master-Detail Beziehung miteinander verknüpft sind. Wenn du dich in der Hauptpos Tabelle bewegst müssen auch die entsprechenden Daten in der Tabelle Einzelpos bzw. Optionen angezeigt werden.
Dann plazierst du für jede Tabelle/Abfrage eine TfrDBDataSet komponente und verbindest sie mit der entsprechenden Tabelle. Die TfrReport Komponente wird über Dataset mit dem TfrDbDataSet verbunden an dem die Hautpos Tabelle hängt.
Wenn du deinen Report gestaltest plazierst du ein Band für die Hauptdaten und wählst dafür die Datenquelle deiner Hauptpostabelle, ein Band für die Detaildaten (=> Datenquelle EinzelPos) und ein Band für Unterdetaildaten (=> Datenquelle Optionen).

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
tommy Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 10.04.03 09:29 
Titel: Antwort
Hi Lothar,

so weit so gut. aber wenn ich das so mache, bekomme ich die Hauptpositionen und darunter alle Detaildaten der Abfrage. Ich brauche die Hauptposzeile nur, wenn sich die Detaildaten (können mehrere sein)
in der Hauptposnr ändern.
Also Hauptpos 1, Detail 1.1, Detail 1.2, Detail 1.3, Hauptpos 2 usw.
Vielleicht gibt es dazu Ideen. :?
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Do 10.04.03 10:23 
Hi
deine Abfrage für die Detaildaten darf nur die Details zur jeweiligen Hauptposition liefern. Das meinte ich mit Master-Detail-Beziehung schaffen.
Eine andere Möglichkeit gibt es wenn du nur eine Abfrage verwendest, die alle Daten sortiert nach HauptPos, DetailPos, Option liefert. Dann verwendest du eine Gruppenkopf-Band mit Wechselkriterium HauptPos in dem du die HauptPos-Daten darstellst. Dann ein zweites mit Wechselkriterium DetailPos zur Darstellung der DetailDaten und im eigentlich Hauptdatenband werden nur noch die Optionen dargestellt.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
tommy Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 10.04.03 12:49 
Titel: Antwort
Hi Lothar,

Hat alles wunderbar geklappt mit gruppenkopf und so :D
Habe nur noch 2 kleine Probleme. Ich brauche am unteren Rand einen Übertrag, der sich auf der nächsten SEITE wiederholt und zwar im Kopf.
Kann man die 2.Seite anders gestalten, als die ERSTE. Wenn ich eine 2.Seite einfüge und Datenfelder darauf platziere ist die Seite in der Vorschau leer.
Danke für Deine Tips! :wave:
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Do 10.04.03 14:23 
Hi
Wenn du eine zweite Seite anlegst, dann ist das sozusagen ein Subreport. Leider keine zweite Layoutseite.
Du kannst das aber dadurch steuern, das du für den Seitenkopf z. B. zwei Childbands anlegst und im OnBeforePrint jeweils das eine oder das andere Band aktivierst.
Das geht z. B. mit
ausblenden Quelltext
1:
2:
3:
4:
 if [PAGE#] = 1 then
   ChildBand = ErstesChildBand
 else
   ChildBand = ZweitesChildBand

Dieser Code muss ins OnBeforePrint des Seitenkopfes.
Für die Geschichte mit dem Übertrag kann ich dir jetzt aus'm Stehgreif auch keine Lösung präsentieren, weil ich FastReport auch erst seit 2 Tagen verwende. Aber es geht auf jeden Fall.
Am besten ziehst du dir mal von der Fast-Report Site die Demoanwendung. Da sind zig Reports in allen Varianten vorhanden. Auch welche mit Summen und Übertrag.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...