![]() |
FastReports Master/Detail Frage
Hallo,
in einem Fast Reports Report brauche ich eine Master/Detail Darstellung. Das Handbuch beschreibt scheinbar nur wie das mit TTable Komponenten im Hintergrund geht. Geht das auch mit frxUserDatasets? Ich hätte meine Daten schon als 1-stufige Liste im Speicher. Oder wie funktioniert sowas alternativ mit TFDQuery von FireDAC? Alternativ könnte ich natürlich meine Query umbauen auf 2 TFDQuerys... |
AW: FastReports Master/Detail Frage
naja, setze TTable mit frxUserdataset gleich und fertig ist dein Master-Detail. Du brauchst halt die Daten in Master-Detail aufgeteilt und musst dafür sorgen, dass beim Wechsel des MAster-Datensatz, die Clientdatensätze entsprechend zurückgeliefert werden.
Alternativ kannst Du auch mit Gruppen arbeiten (GroupHeader) aber was genaues kann man nur sagen, wenn du was über deine Datenstruktur erzählst... |
AW: FastReports Master/Detail Frage
Hallo,
GroupHeader klingt interessant! Ok zu den Daten, sowas hier: Kategorie, Prozentsatz, Menge Kat1, 10%, 123 Kat1, 20%, 456 Kat1, 50%, 546 Kat2, 10%, 676 Kat2, 20%, 154 Kat2, 50%, 76 Darstellung soll sein: Kat1 10% 123 20% 456 50% 546 Kat2 10% 676 20% 154 50% 76 |
AW: FastReports Master/Detail Frage
Zitat:
|
AW: FastReports Master/Detail Frage
Hallo,
ich dachte das hätte ich bereits versucht, aber scheinbar nicht korrekt. Kannst du mir da evtl. nochmal kurz die Vorgehenswiese skizzieren? Dann rolle ich meine Reportdefinition auf das zurück. |
AW: FastReports Master/Detail Frage
Mit dem Reportdesigner oder per Code erzeugt?
Weil mit dem Designer ist es einfach: Groupheader erstellen, DataSet und Feld ("Kategorie") rein. In das Gruppenband ein Textfeld, auch mit der Kategorie. Masterband rein, an das gleiche DataSet binden, restliche Felder reinsetzen, fertig. |
AW: FastReports Master/Detail Frage
Hallo,
komme immer noch nicht ganz klar. Habe das jetzt auf den Stand zurückgesetzt und im Designer folgendes vorliegen: 1. Habe einen GroupHeader. Der hat als Bedingung ein frxUserDataSet drin und da ein Feld einer Struktur -> Kategorie 2. Ich habe ein TfrxMasterData das hat als Dataset dasselbe frxUserDataSetVat drin. Ein Feld kann ich da nicht angeben. Da meckert FastReports. 3. Ich hab' mehrere Textfelder in diesem TfrxMasterData. Jedem hab' ich jetzt dasselbe frxUserDataSet zugewiesen. 4. Es gibt im Code ein Event OnGetValue. Dort hole ich die Daten aus meiner Datenstruktur
Delphi-Quellcode:
Zur Laufzeit wird der Breakpoint nur 1x statt 2x aufgerufen, aber 2 Zeilen mit dem selben Prozentsatz (aber anderen sonstigen Daten) ausgegeben. Er wechselt also beim GroupHeader nicht weiter.
if CompareText(VarName, 'Group."Kategorie"') = 0 then
// Breakpoint auf der nächsten Zeile Value := FData.KategorieData[dm.frxUserDataSet.RecNo].Kategorie; if CompareText(VarName, 'Group."PROZENTSATZ"') = 0 then Value := CurrToStrF(FData.KategorieData[dm.frxUserDataSet.RecNo].Percentage, ffFixed, 2) Warum? |
AW: FastReports Master/Detail Frage
Liste der Anhänge anzeigen (Anzahl: 1)
Mit der Anwendung aus diesem
![]() Bis bald... Thomas |
AW: FastReports Master/Detail Frage
Hallo,
habe mal versucht deine Antwort bzw. den anderen Artikel zu kapieren. Bin jedoch gescheitert. Ich vermute, dass mir nur eine Kleinigkeit fehlt: Bisher ist es so, dass im OnGetValue(const VarName: string; var Value: Variant); der VarName des im GroupHeader auszugebenden Datums nur 1x an OnGetValue übergeben wird. Das MasterData Band direkt darunter hat das frxUserDataSet und weiß irgendwie nicht, anhand welchem Kriterium es entscheiden soll wo der nächste GroupHeader einzuschieben ist. Daher listet es alle seine Einträge unter dem einen GroupHeader. => wie sage ich es dem UserDataSet bzw. dem MasterBand wo eine neue Gruppe beginnt? In der Condition des GroupHeaders hab' ich doch genau das eingetragen, oder nicht? frxUserDataSetKategorien."Kategorie" |
AW: FastReports Master/Detail Frage
Zitat:
![]() Der Report ist in der Anwendung zum Artikel mit wenigen Klicks erstellt. Lege ein neues Projekt an. Kopiere data.json aus meiner ZIP-Datei in das neue Projektverzeichnis. Öffne den Designer. Im Designer unter Report/Daten aktivierst du den DataSet. Danach ziehst du ein GroupHeader, MasterData und GroupFooter Band in den Report. Klickst doppelt auf den GroupHeader und im Dialog wählst du das Datenfeld für die Gruppierung aus. Klickst doppelt auf das MasterData Band und im Dialog markierst du den DataSet. Im Anschluss ziehst du aus dem Datenbaum per Drag&Drop die Felder in die Bänder. Das Feld Kategorie in den GroupHeader, Prozentsatz und Menge in das MasterData Band. Ein wenig aufhübschen und das war es schon. Probiere es einfach aus. Bis bald... Thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 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 by Thomas Breitkreuz