Selbstreferenzierende VTs

Anfang  Zurück  Vor

Letzte Änderung 17.01.2012

 

Bei einer selbstreferenzierenden Virtuellen Tabelle ist jeder Datensatz durch eine 1:n Relation mit einem übergeordneten Datensatz verknüpft, der als Parent bezeichnet wird. Dazu wird zu jedem Datensatz die ID seines Parents als Fremdschlüssel mit gespeichert. Child- und Parent-Datensätze stehen in ein- und derselben Virtuellen Tabelle, sodass die Virtuelle Tabelle auf sich selbst referenziert. Die in der Hierarchie an erster Stelle stehenden Datensätzen besitzen keine Parent-ID, sodass deren Parent-ID null ist. Da alle Datensätze über ID und Parent-ID fest miteinander verknüpft sind, spielt die Reihenfolge der Datensätze in der Virtuellen Tabelle keine Rolle. Mit dieser Datenstruktur lassen sich dann die Daten hierarchisch oder gruppiert auf der Oberfläche abbilden, z.B. mit Hilfe eines Trees oder einer TreeTable. Dazu muss die Virtuelle Tabelle lediglich mit Hilfe der Methode setModel( ) übergeben werden. Das Zusammenführen der Datensätze kann entweder mit Hilfe von Formular-Eingaben oder durch mehrere Datenbankabfragen erfolgen, die auch dynamisch generiert werden können.

 

 

clip0369

 

 

1.Legen Sie eine neue Virtuelle Tabelle Personen mit den Datenfeldern id,vom Typ INTEGER, name vom Typ VARCHAR und parent_id vom Typ INTEGER an und wählen Sie bei id die Option Primärschlüssel an.

clip0446

2.Exportieren Sie die Virtuelle Tabelle Personen in Ihre Datenbank oder legen Sie in Ihrer Datenbank eine entsprechende Tabelle an.

3.Fügen Sie die Virtuelle Tabelle Personen aus dem Projektmanagement in die Arbeitsfläche ein, um ein Formular generieren zu lassen. Wählen Sie im folgenden Formular-Assistent bei parent_id eine XdevComboBox anstatt dem vorgeschlagenen XdevFormattedTextField aus und klicken Sie auf OK.

clip0447

4.Klicken Sie die ComboBox an, wählen Sie in den Eigenschaften bei Virtuelle Tabelle die Virtuelle Tabelle Personen aus, wählen Sie bei der Eigenschaft Anzeige das Datenfeld name und wählen Sie die Eigenschaft Daten beim Start laden an.

clip0448

5.Rufen Sie bei den Formular-Buttons Speichern und Speichern + Neu jeweils im Ereignis actionPerformed nach dem bereits vorhandenem Code die ComboBox-Methode setModel( ) auf, um die ComboBox nach jedem Speichern neu zu füllen.

comboBox.setModel(Personen.VT,"name","id");  

6.Fügen Sie eine XdevTable unter dem Formular ein und wählen Sie in den Eigenschaften bei Virtuelle Tabelle die Virtuelle Tabelle Personen aus, mit der Sie die Entstehung der Datenstruktur beobachten können.

clip0468