Altova MobileTogether Designer

Um das Design fertig zu stellen, wollen wir eine Beschriftung hinzufügen, in der die Gesamtsumme der angezeigten Bestellungen angezeigt wird. Gehen Sie dazu folgendermaßen vor:

 

1.Ziehen Sie ein Steuerelement "Beschriftung" aus dem Fenster "Steuerelemente" unter die Tabelle Orders (siehe Abbildung unten).

2.Klicken Sie im Fenster "Stile & Eigenschaften" auf das XPath-Symbol der Steuerelementeigenschaft Text.

3.Geben Sie im Dialogfeld "XPath/XQuery-Ausdruck bearbeiten", das nun angezeigt wird, den XPath Ausdruck zur Berechnung der Gesamtsummen ein (Sie finden den Ausdruck weiter unten) und klicken Sie auf OK.

MTDSPVOrdersTotal

 

Der XPath-Ausdruck zur Berechnung der Gesamtsumme

Wir müssen die Gesamtsumme für zwei Fälle berechnen: (i) für die Bestellungen des ausgewählten Kunden und (ii) für alle Bestellungen. Verwenden Sie dazu den folgenden XPath-Ausdruck:

 

if (\$XML1/Root/CustomerCode!='All')

then concat('Total: 'xs:decimal(sum (\$ORDERS//Order[CustomerCode=\$XML1/Root/CustomerCode]/OrderAmount)))

else concat('Total: 'xs:decimal(sum (\$ORDERS//OrderAmount)))  

 

Dieser XPath-Ausdruck funktioniert folgendermaßen:

 

1.Mit der if-Klausel des Ausdrucks wird überprüft, ob das Element \$XML1/Root/CustomerCode den String All enthält.

2.Wenn das Element \$XML1/Root/CustomerCode den String All nicht enthält, so werden die OrderAmount-Elemente aller Order-Elemente, deren CustomerCode-Elementinhalt gleich dem Inhalt des Elements \$XML1/Root/CustomerCode ist, ausgewählt. Dabei handelt es sich um die Anzahl der Order-Elemente des vom Endbenutzer ausgewählten Kunden. Wie Sie wissen, wurde der Kundencode CustomerCode in der Seitenquelle \$XML1 gespeichert (siehe Toplevel-Seite: Aktionsgruppe, Gehe zu Unterseite).

3.Wenn das Element \$XML1/Root/CustomerCode den String All enthält, so werden alle OrderAmount-Elemente, ausgewählt.

 

Die ausgewählten OrderAmount-Elemente werden mit Hilfe der sum()-Funktion von XPath summiert. Da in der sum()-Funktion der Typ xs:double verwendet wird und eine Zahl vom Typ xs:double zurückgegeben wird, hat die Summenzahl mehr als die zwei in einer Währung benötigten Dezimalstellen. Wir runden daher den Typ xs:double mit Hilfe der Typkonvertierung xs:decimal auf eine zweistellige Zahl.

 

© 2017-2023 Altova GmbH