|
01.11.2009
Gruppenwechsel
Für dieses Beispiel benötigen Sie die Beispiel-Datenbank FAHRZEUGE und das Projekt fahrzeuge.xdev.
Mit Hilfe eines Gruppenwechsels lassen sich Daten hierarchisch und thematisch gruppiert auflisten. Bei einem Gruppenwechsel folgen nach jedem Datensatz der Obergruppe, z.B. Hersteller, die dazugehörigen Datensätze der jeweiligen Untergruppe, z.B. Fahrzeuge. Die Datenausgabe mit Gruppenwechsel ist sehr viel übersichtlicher als eine herkömmliche, ungruppierte Auflistung von Datensätze. Grundsätzlich lassen sich mit einem DB-Container beliebig viele Gruppenwechsel durchführen. Für jeden Gruppenwechsel müssen Sie Im Entwurf eine neue Zeile hinzufügen und diese dann in ein Gruppenfeld umwandeln.

» Relation zwischen Gruppen notwendig «
Für jede Gruppe benötigen Sie eine Virtuelle Tabelle, die zuvor mit Hilfe einer Datenbankabfrage gefüllt wird. Zwischen den Virtuellen Tabellen muss zudem eine Beziehung (Relation) bestehen. Es ist nicht zwingend notwendig, jedoch vorteilhaft die Virtuellen Tabellen im ER-Diagramm miteinander zu verknüpfen, da die Relation dann vom DB-Container Assistenten erkannt und automatisch angegeben wird.

Datensatz-Schablone konstruieren:
| 1. | Fügen Sie einen DB-Container auf die Arbeitsfläche ein, verbreitern Sie diesen auf 600 Pixel, rufen Sie den DB-Container Layout-Assistenten über das Menü Ansicht > Werkzeugregister > DBContainer auf und entfernen Sie die zuerst die zweite und dritte Spalte des DB-Containers. |

| 2. | Klicken Sie im Layout-Assistenten bei Zeile auf Danach einfügen, selektieren Sie dann die untere Zelle und klicken Sie bei Gruppenfeld auf In Gruppenfeld umwandeln. |
| 3. | Heben Sie die obere Zelle, welche später die Obergruppe enthalten wird, farblich hervor. Klicken Sie die Zelle dazu an und legen Sie bei Eigenschaften > Hintergrundfarbe eine andere Farbe fest. Zudem können Sie auch eine andere Schriftfarbe und -größe festlegen, die sich dann auf die gesamte Zelle beziehen wird. |
| 4. | Klicken Sie nun die untere Zelle an und klicken Sie im Layout-Assistenten bei Spalten 6 Mal auf Klonen. |

| 5. | Selektieren Sie nun den DB-Container, wechseln Sie in die Code-Ansicht und wählen Sie im Code-Editor das Ereignis ON_SHOW ( ) | XDEV NLS: Nach der Darstellung ( ). |
Datenbankabfrage:
| 6. | Fügen Sie eine Datenbankabfrage XDEV Query | XDEV NLS: Datenbankabfrage über mehrere Datenbank-Tabellen in den Code-Editor ein und klicken Sie diese an, um den SQL-Assistenten aufzurufen. Selektieren Sie im SQL-Assistenten bei der Datenbank-Tabelle FAHRZEUGE mehrere Datenfelder sowie zudem in den dort angehängten Tabellen MODELLE und HERSTELLER. Selektieren Sie in der Tabelle HERSTELLER unbedingt auch das Datenfeld ID. Klicken Sie bei Ziel (Virtuelle Tabelle) auf und lassen Sie sich eine Virtuelle Tabelle passend für diese Abfrage erstellen. Benennen Sie diese FAHRZEUGE_JOINS und beenden Sie abschließend den SQL-Assistenten mit OK. |
| 7. | Fügen Sie eine zweite Datenbankabfrage ein, mit der Sie die Tabelle HERSTELLER abfragen. Klicken Sie die Anweisung an, um den SQL-Assistenten aufzurufen. Selektieren Sie im SQL-Assistenten die Datenbank-Tabelle HERSTELLER, sodass alle Datenfelder selektiert werden. Übernehmen Sie die vom SQL-Assistenten automatisch angebotene Virtuelle Tabelle #HERSTELLER als Ziel-Tabelle und schließen Sie abschließend den SQL-Assistenten mit OK. |
Hinweis: Achten Sie darauf, dass Sie in der ersten Abfrage bei der Tabelle HERSTELLER die ID mit selektieren, da diese anschließend bei der Verknüpfung von Ober- und Unterkategorie im DB-Container Füll-Assistenten unbedingt benötigt wird.
|
DB-Container füllen - Ober- und Untergruppe miteinander verknüpfen:
| 8. | Fügen Sie nun die Anweisung XDEV DB-Container füllen in den Code-Editor ein und klicken Sie diese an, um den DB-Container Füll-Assistent aufzurufen und klicken Sie die Komponente DB-Container an, wenn Sie der Assistent dazu auffordert. |
| 9. | Legen Sie im DB-Container Füll-Assistenten zuerst die Obergruppe fest. Wählen Sie dazu bei Virtuelle Quell-Tabelle die Virtuelle Tabelle #HERSTELLER aus. |
| 10. | Klicken Sie oben bei Gruppenwechsel festlegen die untere Gruppe an, um nun die Untergruppe festzulegen. Wählen Sie dazu bei Virtuelle Quell-Tabelle die Virtuelle Tabelle #FAHRZEUGE_JOIN aus. Wählen Sie dann bei Fremdschlüssel das Datenfeld ID_HERSTELLER aus, da diese ID auf die Tabelle HERSTELLER verweist. Wählen sie nun bei Schlüssel der Obergruppe das Datenfeld ID aus und klicken Sie auf Weiter. |

DB-Container füllen - Daten-Mapping:
| 11. | Legen Sie zuerst die Obergruppe fest. Klicken Sie dazu die obere Zeile DB-Containers an, klicken Sie dann im Assistenten auf Virtuelle Quell-Tabelle, anschließend bei der erscheinenden Virtuellen Tabelle #HERSTELLER auf MARKE und klicken Sie schließlich in der Mitte des Dialogs auf Übernehmen, um die Verknüpfung zu übernehmen. |
| 12. | Weisen Sie nun die Datenfelder der Untergruppe zu. Verknüpfen Sie dazu jede Spalte der zweiten Zeile mit einem Datenfeld der Virtuellen Quell-Tabelle #FAHRZEUGE_JOINS. Klicken Sie dazu jeweils zuerst eine Spalte an, klicken Sie dann im Assistenten auf Virtuelle Quell-Tabelle, klicken Sie danach das gewünschte Datenfeld bei #FAHRZEUGE_JOINS an und klicken Sie schließlich in der Mitte des Dialogs auf Übernehmen, um die Verknüpfung zu übernehmen. |
| 13. | Wenn Sie alle Verknüpfungen durchgeführt haben, klicken Sie abschießend auf Übernehmen, um den Assistenten zu schließen. |
Tipp: Mit dem DB-Container können Sie beliebig viele Gruppenwechsel abbilden. Für jeden weiteren Gruppenwechsel benötigen Sie lediglich eine weitere Zeile im DB-Container als Gruppenfeld sowie eine weitere Virtuelle Quell-Tabelle. Im ER-Diagramm müssen alle Virtuellen Quell-Tabellen die Sie für den Gruppenwechsel benötigen, miteinander verknüpft werden.
|
Tipp: Auf dieselbe Weise lassen sich auch im Report-Assistenten Gruppenwechsel für PDF-Reports realisieren. Jede Report-Vorlage besitzt dafür einen Report-Container, der genauso wie eine DB-Container-Komponente funktioniert.
|
|