Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Fastreport mit Master/Detail (https://www.delphipraxis.net/207829-fastreport-mit-master-detail.html)

NoGAD 7. Mai 2021 12:46


Fastreport mit Master/Detail
 
Hallo,

gibt es eine Möglichkeit, für ein TfrxMemoView im Feld selbst die Master-Detailbeziehung zu setzen?

Meine Versuche, z.B. mittels

Code:
Fach: [<frxDBDataset_Main."id">[<frxDBDataset_Fach."book_field">]]
sollte dazu führen, dass aus der Mastertabelle, welche in frxDBDataset_Main hinterlegt ist, aus der Detailtabelle (frxDBDataset_Fach) über die id den entsprechenden Eintrag heraus zu nehmen.

Leider weiß ich nicht, wie die korrekte Vorgehensweise hier ist.

Im Designer kann ich es (imho) nicht erstellen, da die Datenbank und Tabellen erst zu Laufzeit vom Programm erstellt werden.


Edit:

Oder nochmal anders herum:

In Tabelle_Main steht in der Spalte book_fach die Referenz zur ID aus Tabelle_Fach. Und aus der Tabelle_Fach soll bitte nun im Report über eine Expression der Wert aus der Spalte Fach_Name eingetragen werden.


Code:
Table_Main:

 id | book_fach
---------------
 0  | 1
 1  | 3

Table_Fach:

 id | fach_name
---------------
 0  | Hallo Test
 1  | Hulahupp
 2  | Ich bins
 3  | Ach..





LG Mathias

Billa 14. Mai 2021 06:39

AW: Fastreport mit Master/Detail
 
Du erstellst die Tabelle erst zur Laufzeit mit SQL?

Dann hilft dir ein JOIN, um mit Hilfe des Integer book_fach an den Text von fach_name zu kommen:

select
a.id,
b.fach_name,
...
from
table_main a
left join
table_fach b on (a.book_fach = b.id)
...

Dann hast Du fach_name zur Verfügung, als wäre es ein Feld der table_main.
Voraussetzung ist aber, dass ID aus table_fach eindeutig ist.

Oder habe ich Dich falsch verstanden?

NoGAD 21. Mai 2021 00:07

AW: Fastreport mit Master/Detail
 
Hallo und danke für die Anregung, @Billa.

Inzwischen habe ich es jedoch anders lösen können, da ich mit Join keine Erfahrung habe.

Mein Weg ist, dass ich die Felder über Namen bei der Reporterstellung direkt füttere. Somit kann ich auch gleich auf bestimmte Ereignisse reagieren, ohne Scripte im Report nutzen zu müssen.

LG Mathias


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 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