Seitenquellen: DB und Persistent

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

Startseite >  Tutorials > Komplexe Datenbank >

Seitenquellen: DB und Persistent

Das Design hat zwei Seiten: (i) eine Toplevel-Seite namens Main Page und (ii) eine Unterseiten namens Edit Book.

 

Auf Main Page werden die Bücher entweder (i) ungefiltert oder (ii) nach einem Suchbegriff gefiltert angezeigt. Außerdem kann der Benutzer auf Main Page: (i) auf einen Datensatz klicken, um ihn zu bearbeiten und (ii) auf eine Schaltfläche klicken, um einen neuen Datensatz hinzuzufügen. In beiden Fällen wird durch den Klick die Unterseite Edit Book aufgerufen. Main Page hat vier Seitenquellen (siehe Abbildung unten): $PERSISTENT, $BOOKS, $BOOKS-SEARCH, $EDIT-BOOK.
Die Unterseite Edit Book enthält eine Vorlage, die die Felder des Datensatzes enthält. Wenn ein Datensatz bearbeitet wird, enthält die Vorlage die Informationen zum Buch. Wenn ein Datensatz hinzugefügt wird, ist die Vorlage leer. Edit Book hat zwei Seitenquellen: $PERSISTENT und $EDIT-BOOK. $EDIT-BOOK auf von der Seite Main Page verwendet (gemeinsame Verwendung).

Click to expand/collapse

 

$PERSISTENT

In der Seitenquelle $PERSISTENT werden dynamische Daten gespeichert. Sie hat ein einziges Element namens Root, das eine Reihe von Attributen hat (siehe Abbildung unten), deren Werte durch Benutzeraktionen festgelegt werden. So erhält etwa das Attribut show-as-list, je nachdem, ob der Benutzer das Optionsfeld List oder Table auswählt, 1 bzw. 0.

MTDTutDBBksPgSrcPersistent

Von den Werten der Seitenquelle $PERSISTENT sind verschiedene Aspekte des Designs abhängig, d.h. diese Werte bilden Bedingungen dafür. Wenn der Wert von show-as-list z.B. 1 ist, wird der Bücherkatalog als Liste und nicht als Tabelle angezeigt.

 

$BOOKS

Die Seitenquelle $BOOKS wählt die Tabelle Books aus der SQLite-Datenbank Books.sqlite aus. Jeder Bücherdatensatz entspricht einem Row-Element in der Seitenquelle, wobei die Felder (oder Spalten) der einzelnen Datenbankzeilen den Attributen des jeweiligen Row-Elements entsprechen. Sie sehen diese in den Abbildungen unten, in denen links die Seitenquelle im Design und rechts die Seitenquelle in einer Simulation angezeigt werden.

MTDTutDBBksPgSrcBooksDes     MTDTutDBBksPgSrcBooksSim

Mit Hilfe der Seitenquelle $BOOKS wird der gesamte Bücherkatalog angezeigt.

 

$BOOKS-SEARCH

Die Seitenquelle $BOOKS-SEARCH (Abbildung links unten) filtert die Tabelle Books aus der SQLite-Datenbank Books.sqlite, um Bücher auszuwählen, bei denen der Wert eines beliebigen Felds im Datensatz zumindest teilweise mit dem Suchbegriff übereinstimmt. Beachten Sie in der Abbildung links unten den Filter, der in der Seitenquelle im Root-Element DB definiert ist. Die SQL SELECT-Anweisung des Filters ist in der Abbildung rechts unten zu sehen. Der Parameter :SearchLike in der SELECT-Anweisung wird zu dem vom Benutzer eingegebenen Suchbegriff aufgelöst.

MTDTutDBBksPgSrcBooksSearch     MTDTutDBBksPgSrcBooksSearchFilter

Bei einer Suche wird die $BOOKS-Struktur in der Anzeige der Toplevel-Seite durch die $BOOKS-SEARCH-Struktur ersetzt.

 

$EDIT-BOOK

Die Seitenquelle $EDIT-BOOK ähnelt der Seitenquelle $BOOKS-SEARCH insofern, als sie die Tabelle Books aus Books.sqlite filtert. In der Abbildung unten sehen Sie die SQL SELECT-Anweisung des Filters. Der Parameter :iD in der SELECT-Anweisung wird zu dem Wert im Node $PERSISTENT/Root/@edit-book-id, welcher die ID des bearbeiteten bzw. hinzugefügten Buchdatensatzes ist, aufgelöst.

MTDTutDBBksPgSrcEditBookFilter

Die Seitenquelle $EDIT-BOOK wird als Daten-Link der Bearbeitungsvorlage in der Unterseite Edit Book verwendet. Die Seitenquelle $EDIT-BOOK enthält auch einen OriginalRowSet-Node (der über das Kontextmenü erstellt werden muss) für die Originaldaten, während RowSet die aktuellen (bearbeiteten) Daten enthält (siehe Abbildung unten).

MTDTutDBBksPgSrcEditBook

 

 


© 2019 Altova GmbH