List- und Comboboxen füllen

Previous  Next

 

 

 

01.11.2009

List- und Comboboxen füllen

Für dieses Beispiel benötigen Sie die Beispiel-Datenbank FAHRZEUGE und das Projekt fahrzeuge.xdev

 

Hinweis: Der folgende Abschnitt bezieht sich nur auf die Combobox, da List- und Combobox im Kern exakt dieselben Komponenten sind und der Einsatz von Listboxen exakt genauso funktioniert.

 

Comboboxen werden gewöhnlich mit Hilfe der Methode hmtoggle_plus1 fillFromVT ( ) | XDEV NLS: fülleAusVirtuellerTabelle ( ) gefüllt. Comboboxen, die sich in einem DB-Container befinden, werden dagegen von der DB-Container Füll-Aktion hmtoggle_plus1 XDEV FillDBContainer | XDEV NLS: XDEV DBContainerFüllen gefüllt. In beiden Fällen wird die Combobox mit Daten aus einer Virtuellen Quell-Tabelle gefüllt, welche zuvor wiederum mit Hilfe einer Datenbankabfrage gefüllt wird. D.h. für jede Combobox benötigen Sie eine eigene Datenbankabfrage und Virtuelle Quell-Tabelle.

 

» Aufbau der Virtuellen Quell-Tabelle «

Eine geeignete Virtuelle Quell-Tabelle muss min. 2 Datenfelder besitzen, da sich jeder Eintrag in einer Combobox aus einem sichtbaren Wert und dessen Datensatz-ID zusammen setzt, welche jedoch unsichtbar bleibt, z.B. Virtuelle Quell-Tabelle: #MODELLE mit den Datenfeldern MODELL_ID und MODELL. Die Datensatz-ID wird benötigt, um beim Ansteuern der Combobox den richtigen Eintrag anzeigen zu können und um eine andere Auswahl in der Datenbank speichern zu können.

 

» Füllen in 3 Schritten «

Die Combobox wird gefüllt, wenn Sie diese mit 2 Datenfeldern der Virtuellen Quelll-Tabelle verknüpfen, z.B. mit dem Datenfeld MODELL für die sichtbaren Einträge sowie mit MODELL_ID für deren Datensatz-IDs. Damit bei der Ausgabe eines Datensatzes im DB-Container die gefüllte Combobox jedoch auch den richtigen Wert anzeigen kann, müssen Sie der Combobox schließlich noch die für die Auswahl bzw. Selektierung notwendige ID übergeben, z.B. MODELL_ID.

 

 

Fortsetzung des Beispiels DB-Container füllen:

 

Datensatz-Schablone konstruieren:

 

4.Vergeben Sie der ersten Spalte ein Rand-Layout (Border-Layout), damit sich die anschließend eingefügte Combobox automatisch an die Zellengröße anpasst. Klicken Sie dazu die erste Spalte an, klicken Sie dann in den Eigenschaften bei Layout auf calldialog, klicken Sie im folgenden Dialog auf RandLayout und dann auf OK.
5.Fügen Sie nun in Spalte 1 eine Combobox ein.

clip0458

6.Selektieren Sie dann den DB-Container, wechseln Sie in die Code-Ansicht und wählen Sie im Code-Editor das Ereignis hmtoggle_plus1 ON_SHOW ( ) | XDEV NLS: Nach der Darstellung ( ).

 

Datenbankabfrage:

 

7.Fügen Sie eine Datenbankabfrage hmtoggle_plus1 XDEV Query | XDEV NLS: XDEV Datenbankabfrage in den Code-Editor ein und klicken Sie diese an, um den SQL-Assistenten aufzurufen. Selektieren Sie bei der Datenbank-Tabelle FAHRZEUGE die Datenfelder MODELL_ID, ERSTZULASSUNG, KILOMETERSTAND, LEISTUNG und PREIS. Wählen Sie bei Ziel Sie Ziel (Virtuelle Tabelle) die bereits existierende Virtuelle Tabelle #FAHRZEUGE aus und schließen Sie den SQL-Assistenten mit OK
8.Fügen Sie für die eine weitere Datenbankabfrage für die Combobox in den Code-Editor ein. Selektieren Sie im SQL-Assistenten die Datenbank-Tabelle MODELLE, übernehmen Sie die bereits vorhandene Virtuelle Tabelle #MODELLE, die der SQL-Assistent automatisch anbietet als Ziel-Tabelle und schließen Sie den SQL-Assistenten mit OK.

 

 

DB-Container füllen:

 

9.Fügen Sie die Anweisung DB-Container füllen in den Code-Editor ein und klicken Sie diese an, um den DB-Container Füll-Assistenten aufzurufen. Klicken Sie den DB-Container nochmals an, wenn Sie der folgende Dialog dazu auffordert.
10.Wählen Sie im folgenden Dialog die Virtuelle Quell-Tabelle #FAHRZEUGE aus und klicken Sie auf Weiter.
11.Verknüpfen Sie zuerst die leeren Spalten nacheinander mit den Datenfeldern ERSTZULASSUNG, KILOMETERSTAND, LEISTUNG und PREIS der Virtuellen Quell-Tabelle #FAHRZEUGE. Klicken Sie dazu jeweils zuerst die Spalte an, klicken Sie im Assistenten auf Virtuelle Quell-Tabelle, klicken Sie dann das entsprechende Datenfeld an und abschließend auf Übernehmen, um die Verknüpfung zu übernehmen.

 

 

Comboboxen füllen:

 

12.Verknüpfen Sie jetzt die Combobox mit der Virtuellen Quell-Tabelle #MODELLE, sodass die Combobox zur Laufzeit gefüllt wird. Legen Sie dafür zuerst das Datenfeld für die Einträge fest. Klicken Sie dazu die Combobox an, klicken Sie im Assistenten nun auf Andere Virtuelle Tabelle, wählen Sie die Virtuelle Tabelle #MODELLE aus, klicken Sie auf das Datenfeld MODELL und abschließend auf Übernehmen.
13.Übergeben Sie dann das Datenfeld für die Datensatz-ID. Klicken Sie dazu die Combobox an, klicken Sie nun auf Daten, erneut auf Andere Virtuelle Tabelle, wählen Sie erneut die Virtuelle Tabelle #MODELLE aus, klicken Sie das Datenfeld ID an und abschließend auf Übernehmen.

 

 

Comboboxen ansteuern:

 

14.Verknüpfen Sie die Combobox nun mit der Virtuellen Tabelle #FAHRZEUGE, welche die Datensätze enthält, welche im DB-Container ausgegeben werden sollen - genauer mit dem Datenfeld MODELL_ID, da  damit der richtige Eintrag in der Combobox angesteuert werden kann. Klicken Sie dazu die Combobox an, klicken Sie auf Selektiert, klicken Sie auf Virtuelle Quell-Tabelle, klicken Sie auf das Datenfeld MODELL_ID und dann auf Übernehmen.

clip0459

15.Klicken Sie abschließend auf Übernehmen, um den Assistenten zu schließen.

 

 

hmtoggle_plus1XDEV Object Language

1

2

3

4

5

6

ON_SHOW ( )

{

  XDEV Query #FAHRZEUGE << FAHRZEUGE;

  XDEV Query #MODELLE << MODELLE;

  XDEV FillDBContainer DBContainer;

}

hmtoggle_plus1XDEV Basic

1

2

3

4

ON_SHOW ( )

  XDEV Query #FAHRZEUGE << FAHRZEUGE

  XDEV Query #MODELLE << MODELLE

  XDEV FillDBContainer DBContainer

hmtoggle_plus1XDEV NLS

1

2

3

4

Nach der Darstellung ( )

  XDEV Datenbankabfrage #FAHRZEUGE << FAHRZEUGE

  XDEV Datenbankabfrage #MODELLE << MODELLE

  XDEV DBCointainerFüllen DBContainer