Datenbankdaten auf Basis der Benutzerauswahl laden

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Tutorials > Einfache Datenbank >

Datenbankdaten auf Basis der Benutzerauswahl laden

Die DB-Datensätze der Fahrzeugmodelle werden in einer Tabelle angezeigt, wobei nur die Modelle geladen und angezeigt werden, die zu dem vom Endbenutzer (in der Auswahlliste) ausgewählten Hersteller gehören. Nähere Informationen zum Einrichten der Auswahlliste finden Sie im vorherigen Abschnitt. In diesem Abschnitt wird zuerst eine Tabelle zur Anzeige der Datensätze erstellt. Anschließend wird die Auswahl der Datensätze, die in die $DB1-Struktur geladen und angezeigt werden sollen, definiert.

 

Tabelle für die Anzeige der Datensätze

Jeder Datensatz (oder jede Zeile) in der Datenbank entspricht einem anderen Fahrzeugmodell. Die beste Methode, um diese Datensätze anzuzeigen wäre also, eine Tabelle mit sich wiederholenden Zeilen zum Design hinzuzufügen, in der jede Tabellenzeile einer Datenbankzeile entspricht. Die Tabelle sollte drei Spalten haben, je eine für den Fahrzeughersteller, das Modell und die PS des Autos sowie eine Überschriftszeile (siehe Abbildung unten). Wenn der Benutzer einen anderen Eintrag in der Auswahlliste auswählt, sollten die Fahrzeugmodelle des neuen Herstellers geladen und angezeigt werden.

MTDDBSimulation01

Um eine Tabelle einzufügen, die die oben beschriebenen Eigenschaften hat, fügen Sie ein Tabellensteuerelement mit denselben Einstellungen, wie in der Abbildung unten gezeigt, hinzu.

Click to expand/collapse

Nehmen Sie in der Tabelle die folgenden Einstellungen vor:

 

Verknüpfen Sie die sich wiederholende Zeile der Tabelle mit der Datenbankzeile. Ziehen Sie dazu das Element $DB1/DB/RowSet/Row auf das Symbol für die sich wiederholende Zeile in der Tabelle. Damit legen Sie fest, dass es zu jeder Zeile (jedem Datensatz) in der $DB1-Struktur eine entsprechende Zeile in der Tabelle gibt.
Ziehen Sie Beschriftungssteuerelemente in jede der drei Überschriftszellen und geben Sie einen passenden Text für die drei Spaltenüberschriften ein (siehe Abbildung unten).
Ziehen Sie für den Inhalt der drei Spalten die folgenden Attribut-Nodes des Row-Elements aus dem Fenster "Seitenquellen" und erstellen Sie diese als Beschriftungssteuerelemente: Manufacturer, Model, Horsepower (siehe Abbildung unten).

 

Wenn Sie damit fertig sind, sollte die Tabelle im Design ungefähr folgendermaßen aussehen:

MTDDBTableDesign01

 

Auswählen der DB-Datensätze, die geladen und angezeigt werden sollen

In der soeben erstellten Tabelle werden alle aus der Datenbank geladenen Datensätze angezeigt. So, wie die $DB1-Struktur derzeit definiert ist, werden alle Datensätze in der Datenbank, d.h. alle Fahrzeugmodelle aller Hersteller, geladen und angezeigt. Es sollen jedoch nur die Fahrzeugmodelle des vom Benutzer in der Auswahlliste ausgewählten Herstellers geladen und angezeigt werden.

 

Um nur die Fahrzeugmodelle des ausgewählten Herstellers zu laden, erstellen Sie eine SELECT-Anweisung für die $DB1-Struktur. Gehen Sie dazu folgendermaßen vor:

 

1.Klicken Sie auf das DB-Symbol rechts von der $DB1-Strukturlegende (siehe Cursor in der Abbildung unten).

MTDDBPageSourcesDBIcon

2.Klicken Sie im daraufhin angezeigten Dialogfeld "Datenbankobjekte einfügen" (Abbildung unten) auf SELECT-Anweisung hinzufügen/bearbeiten.

MTDDBSelectCarsTable

3.Geben Sie in das Dialogfeld "SQL SELECT-Anweisung eingeben", das nun angezeigt wird, die folgende SELECT-Anweisung ein: SELECT [Manufacturer], [Model], [Horsepower] FROM Cars WHERE Manufacturer = :Manufacturer. Mit dieser Anweisung werden nur die Felder Manufacturer, Model und Horsepower derjenigen Datensätze ausgewählt - und somit geladen - deren Feld Manufacturer dem vom Parameter :Manufacturer bereitgestellten Wert entspricht. Da die SELECT-Anweisung einen Parameter (:Manufacturer) enthält, wird zum unteren Bereich des Dialogfelds automatisch eine Zeile für die Parameterdefinition hinzugefügt (siehe Abbildung).

mtddbselectstatement_zoom70

4.Geben Sie den folgenden XPath-Ausdruck als Definition des Parameterwerts :Manufacturer ein: $PERSISTENT/Root/@Manufacturer. Dadurch wird definiert, dass die SQL SELECT-Anweisung diejenigen DB-Datensätze auswählt, deren Feld Manufacturer mit dem aktuellen Wert im Node $PERSISTENT/Root/@Manufacturer, welcher die Benutzerauswahl darstellt, übereinstimmt.

 

Beachten Sie, dass die für die $DB1-Datenquelle definierte SELECT-Anweisung auswählt, welche Daten aus der Datenbank in die $DB1-Struktur geladen werden sollen. Dies funktioniert folgendermaßen:

 

Sobald der Benutzer den Wert in der Auswahlliste ändert, lädt die Neu laden-Aktion des BeimBeendenDerBearbeitung-Ereignisses die $DB1-Struktur neu (siehe Definition der Auswahlliste).
Die $DB1-Struktur wird auf Basis einer SELECT-Anweisung geladen.
In dieser SELECT-Anweisung wird ein Parameter verwendet, der als Wert den Wert des Attributs $PERSISTENT/Root/@Manufacturer, welches die neue Benutzerauswahl enthält, hat. Aufgrund dieses Parameters werden nur die DB-Zeilen ausgewählt, die einen Manufacturer-Feldwert haben, der mit dem vom Benutzer ausgewählten Hersteller übereinstimmt.
Alle DB-Zeilen, die in die $DB1-Struktur geladen wurden, werden in der Tabelle angezeigt. Da aber nur die Zeilen in die $DB1-Struktur geladen wurden, die mit der Benutzerauswahl übereinstimmen (Abbildung unten), werden in der Tabelle nur die Fahrzeugmodelle angezeigt, die der Benutzerauswahl entsprechen.

MTDDBSimulation02

 


© 2019 Altova GmbH