Altova MobileTogether Designer

Ein weiterer Vorteil der Verwendung von Steuerelementvorlagen ist, dass sie an die Steuerelementvorlage Parameterwerte übergeben und den Inhalt innerhalb der Vorlage dynamisch ändern können. In unserer Beispieldatei Cities3-DynamicUpdates.mtd haben wir zum vorherigen Beispiel Cities2-SwitchTemplates.mtd Sortierfunktionen hinzugefügt. Benutzer können dadurch entscheiden, ob die Länder und/oder Städte sortiert angezeigt werden sollen (siehe Abbildung unten).

 

MTDCTExS3Sim01

 

 

Funktionsweise

Wir sind folgendermaßen vorgegangen, um die Sortierfunktionalität zu implementieren:

 

Wir haben zu beiden Steuerelementvorlagen einen optionalen $sort-Parameter hinzugefügt.

Wir haben im Design der Toplevel-Seite rechts von jedem Platzhaltersteuerelement ein Kontrollkästchen-Steuerelement hinzugefügt (siehe Abbildung unten) und die Spaltenbreite des Kontrollkästchens auf Inhalt_umbrechen gesetzt. Außerdem haben wir die Eigenschaft Sichtbar der einzelnen Kontrollkästchen entsprechend definiert.

Wir haben in der $PERSISTENT-Struktur die zwei neuen Attribute SortCountries und SortCities hinzugefügt und den festgelegten Standardwert jeweils auf 0 gesetzt (siehe Abbildung unten). Anschließend haben wir definiert, dass diese beiden Nodes durch den jeweiligen Kontrollkästchenwert (aktiviert oder deaktiviert) aktualisiert werden sollen; dazu haben wir die einzelnen Nodes auf ihr jeweiliges Kontrollkästchen gezogen.

MTDCTExS3SortNodes

Wir haben für jeden Platzhalter für den Wert des Parameters $sort jeweils einen XPath-Ausdruck definiert, nämlich if ($PERSISTENT/Root/@SortCountries=1) then true() else false() und if ($PERSISTENT/Root/@SortCities=1) then true() else false().

In jeder Steuerelementvorlage wird die Sequenz, die die sich wiederholenden Zeilen oder Spalten der Tabelle generiert, durch den XPath-Ausdruck if ($sort) then sort($values) else $values definiert. Einfach ausgedrückt, bedeutet dies: Wenn der Wert des Parameters $sort true() ist, dann sortiere die Datenelemente in der Sequenz $values. Verwende andernfalls die Sequenz $values unverändert (d.h. in der Reihenfolge, in der sie in der XML-Datendatei CitiesWorldwide.xml steht).

MTDCTExS3CTVerticalRadioButtons

 

Es geschieht Folgendes:

 

Die Werte der Attribute SortCountries und SortCities werden auf den Anfangswert 0 gesetzt. Die Werte beider Attribute können durch Aktivierung (Wert wird auf 1 gesetzt) oder Deaktivierung (Wert auf 0 gesetzt) der entsprechenden Kontrollkästchen geändert werden.

Die Werte der entsprechenden Attribut-Nodes (SortCountries und SortCities) werden über die beiden Platzhalter entweder als true() oder false() an den Parameter $sort der entsprechenden Steuerelementvorlage übergeben.

Der XPath-Ausdruck, der die Datenelemente der $values-Sequenz auswählt, anhand welcher die sich wiederholenden Zeilen oder Spalten erzeugt werden, sortiert je nach Wert des $sort-Vorlagenparameters (true() oder false()) entweder die Sequenz oder tut dies nicht.

 

© 2018-2024 Altova GmbH