![]() |
Datenbank: MS SQL • Zugriff über: ADO
M:N Relation GUI Realisierung
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich muss in meinem Program eine Realtion zwischen Teams und Aktivitäten darstellen. Ein Team kann mehrere Aktivitäten haben. Eine Aktivität kann ebenfalls von mehreren Teams genutzt werden. Folglich eine M:N Beziehung die ich mit folgenden Tabellen abgebildet habe: TB_Teams ======== TeamID Name etc- TB_Teams_Activity =================== FK_TeamID FK_ActivityID Active TB_Activities ============= ActivityID Name Mir ist noch nicht ganz klar wie ich die Oberfläche so hinbekommen soll wie im Anhang. Links habe ich bereits dei Activitäten gelistet. Rechts müssen nun alle Teams aufgeführt werden und die Checkbox aktiviert werden wenn das Team diese Aktivität nutzt. Soll ich die Team Tabelle lesen, für jedes team dynamisch eine Checkbox erstellen? Dann müsste ich zur Checkbox noch den primärschlüssel der TB_Teams_activity speichern., wenn es bereits einen Datensatz gibt...?!? Beim Speichern dann alle Checkboxen durchgehen und evtl. nen Update oder Insert auf die DB. Sorry wenn das alles noch etwas unstrukturiert ist. Ich weiß halt noch gar nicht wie ich das machen soll... Thanx Marcus |
Re: M:N Relation GUI Realisierung
Du musst doch nicht für jedes de m Teams und n Aktivitäten einen Record in der Zwischentabelle speichern (m*n einträge). Die Arbeit wird dadurch erschwert, wenn auch immer ein Team oder Aktiv. hinzukommt, du entsprechend auch in der Mappingtabelle hantieren musst.
Machs doch so: Ist ein Häkchen gesetzt (Team x für Akt. y), dann erstelle eine Record in der MT, ansonsten lösche ihn... Das Active Flag sparst du dir dadurch dann auch noch. |
Re: M:N Relation GUI Realisierung
Das hatte ich mir auch schon überlegt. Wenn du das vorschlägst werde ich das so probieren.
Doch wie kann ich an die Checkbox den Primärschlüssel der Mappingtabelle hängen? |
Re: M:N Relation GUI Realisierung
Ich habe ein vergleichbares Problem so gelöst:
Bei mir war es so, dass eine bestimmte Aktion mit einem Kundenstamm, der viele Tausende Kunden enthält, verknüpft werden sollte. Die Verknüpfungen werden in einem DBGrid angezeigt. Es gibt folgende Menüpunkte zum ändern der Verknüpfungen
Code:
Alle löschen
Alle einfügen mehrfach Einfügung (man gibt die Nummern in einem weiteren Formular ein) mehrfach Löschen (man gibt die Nummern in einem weiteren Formular ein) per Jokerzeichen einfügen (hier ist ? und * erlaubt) per Jokerzeichen löschen (hier ist ? und * erlaubt) |
Re: M:N Relation GUI Realisierung
Zitat:
|
Re: M:N Relation GUI Realisierung
Hört sich ähnlich wie meine Sache an. Bei mir werden es nur sehr wenige Datensätze geben, so das Checkboxen schon schön ausschauen. Ich erstelle diese jetzt dynamisch in einer Scrollbox. Den PK der Mappingtablle speichere ich als Tag.
Falls das mit dem Tag nicht hinhaut, ist die TCheckedListBox ein super Tipp :) Objecte habe ich bereits an Listboxen gehängt. Jetzt Loop ich durch die Mappingtabelle und aktivire die entsprechenden Checkboxen. Das Speichern wird noch einmal Tricky.... Kann ich alle dynamisch erzeugten Checkboxen ein "OnClick" oder "OnChange" Ereignis zuweisen?? Dann könnte man bein Klicken auf eine Box direkt den entsprechenden Eintrag in der DB vornehmen, oder löschen. |
Re: M:N Relation GUI Realisierung
Zitat:
|
Re: M:N Relation GUI Realisierung
Zitat:
Delphi-Quellcode:
Ich würde aber trotzdem die CheckListBox bevorzugen. Das erspart dir das manuelle Erstellen der Checkboxen, die Scrollbox usw.
chk := TCheckBox.Create(Self) ;
chk.Parent := self ; chk.OnClick := CheckBoxOnClick ; procedure TForm1.CheckBoxOnClick (sender : TObject) begin // Mach was... sender ist die Checkbox, die geklickt wurde. end ; |
Re: M:N Relation GUI Realisierung
Die Checklistbox kannte ich noch gar nicht. Scheint aber ganz praktisch zu sein.
Naja, habe die jetzt soweit schon dynamisch erstellt. Wenn das mit dem Event noch so hinhaut wie ich mir das vorstelle habe ich es dank eurer Hilfe fast geschafft :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 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