AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi M:N Relation GUI Realisierung
Thema durchsuchen
Ansicht
Themen-Optionen

M:N Relation GUI Realisierung

Ein Thema von Salomon · begonnen am 22. Nov 2007 · letzter Beitrag vom 22. Nov 2007
Antwort Antwort
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#1

M:N Relation GUI Realisierung

  Alt 22. Nov 2007, 10:41
Datenbank: MS SQL • Zugriff über: ADO
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
Miniaturansicht angehängter Grafiken
activity_team_836.jpg  
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: M:N Relation GUI Realisierung

  Alt 22. Nov 2007, 11:17
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.
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#3

Re: M:N Relation GUI Realisierung

  Alt 22. Nov 2007, 12:37
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?
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: M:N Relation GUI Realisierung

  Alt 22. Nov 2007, 12:41
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)
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: M:N Relation GUI Realisierung

  Alt 22. Nov 2007, 13:37
Zitat von Salomon:
Doch wie kann ich an die Checkbox den Primärschlüssel der Mappingtabelle hängen?
Du kannst z.B. eine TCheckedListBox verwenden. Di kannst du verwenden wie eine ListBox, und mittels der Methode AddObject ganze Objekte als Items anhängen. So kannst du also zu jedem einzelnen Eintrag beliebige zusätzliche Informationen hinterlegen.
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#6

Re: M:N Relation GUI Realisierung

  Alt 22. Nov 2007, 13:48
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.
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: M:N Relation GUI Realisierung

  Alt 22. Nov 2007, 13:56
Zitat von Salomon:
Kann ich alle dynamisch erzeugten Checkboxen ein "OnClick" oder "OnChange" Ereignis zuweisen??
Kurz und knapp: ja
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: M:N Relation GUI Realisierung

  Alt 22. Nov 2007, 13:57
Zitat von Salomon:
Kann ich alle dynamisch erzeugten Checkboxen ein "OnClick" oder "OnChange" Ereignis zuweisen??
Natürlich kannst du das... Nach dem Erzeugen der CheckBox:

Delphi-Quellcode:
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 ;
Ich würde aber trotzdem die CheckListBox bevorzugen. Das erspart dir das manuelle Erstellen der Checkboxen, die Scrollbox usw.
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#9

Re: M:N Relation GUI Realisierung

  Alt 22. Nov 2007, 14:10
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
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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