Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi n:m Beziehung --> Anzeige / Editor (https://www.delphipraxis.net/105161-n-m-beziehung-anzeige-editor.html)

SMALLID 17. Dez 2007 12:36

Datenbank: MySQL • Version: 5.1 • Zugriff über: Zeos, TMS

n:m Beziehung --> Anzeige / Editor
 
Hello dear friends,

ich kann mir nicht vorstellen, dass noch niemand dieses Problem hatte, deshalb frage ich zwecks Erleuchtung mal in die Runde:

Angenommen, es gibt eine Tabelle mit Teilen (Parts) und jedes Teil kann verschiedenen, aus einer Liste auszuwählenden Modulen (Modules) zugeordnet werden, also bspw.:

Part1 gehört zu Module1 und/oder Module5
Part2 gehört zu Module1 und/oder Module2 und/oder Module7
Part3 gehört zu Module2 und/oder Module3
etc.pp.

Jetzt werden diese Parts in einem DB-Grid (AdvDBGrid von TMS) angezeigt und man soll in der entsprechenden Zelle, wo die Zuordnung des Parts zu den Modulen erfolgt, die Module editieren (am besten anhaken) können.

--> Wie geht das überhaupt? :wiejetzt: :coder2:

Also ich suche an der Oberfläche wohl so eine Art DBLookupCheckComboBox (was ein Name ...) und im Hintergrund muss diese in eine Kreuztabelle schreiben, nehme ich an, die Parts zu Modules zuordnet.

Hmm. Sowas muss es doch geben, oder gibt es einen Standard-Weg für solche Kombinationen, der mir gerade entfällt?

Jelly 17. Dez 2007 12:56

Re: n:m Beziehung --> Anzeige / Editor
 
Datentechnisch gesehen ist das ja, wie schon bemerkt, eine n:m Beziehung. Und dafür brauchst du eine Relationstabelle. Du hast also neben den Tabellen Modules und Parts dann noch das Bindeglied ModulePart.

Auf Gui Ebene würde ich das mit 2 Listboxen lösen, und einer Combobox (als Beispiel). In der Combobox wählst du das Module aus. In der ersten Listbox die Parts, die nicht zum selektiertem Module gehöre, und die 2. Listbox mit den selektierten Parts im Module. Alternativ zu den 2 Listboxen geht natürlich auch eine TCheckListBox, wo du dann die Parts einfach durch einen Haken markierst. Persönlich finde ich erste Variante eleganter, ist aber Geschmackssache... Aber automatisiert kriegst du das wohl nicht hin. Ich denke, du wirst bei jedem Modulwechsel deine Relationstabelle abfragen müssen und dann die entsprechenden Listboxen bzw. CheckListBox manuell füllen.

SMALLID 17. Dez 2007 14:26

Re: n:m Beziehung --> Anzeige / Editor
 
Danke! So hatte ich es auch angedacht. Ich wundere mich aber wirklich, dass es dafür noch keine Komponente oder Standardlösung gibt. Eine Art DBLookupCheckComboBox muss doch schonmal jemand gemacht haben? Ich kümmere mich wohl dann mal darum ;) ;)


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