サブページ:XPath 内の総額

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  チュートリアル > サブページと可視性 >

サブページ:XPath 内の総額

デザインを完了するには、総額を表示するラベルを表示されたオーダーに追加します。 以下のとおり行います:

 

1.[コントロール] ペイン から、[ラベル] コントロール をドラッグしてオーダー テーブルにドロップします (下のスクリーンショット参照)。
2.[スタイル & プロパティ] ペイン内のコントロールの Text プロパティのコントロールの XPath アイコン をクリックします。
3.表示される [XPath/XQuery 式の編集] ダイアログ に、総額を計算する XPath 式 (式 は下に与えられています)を入力します。そして、 [OK] をクリックします。

MTDSPVOrdersTotal

 

総額を計算する XPath 式

以下の 2 つの イベントの総額を計算します: (i) 選択されたカスタマーのオーダー、 および (ii)  すべての オーダー。これは、次の XPath 式を使用して行うことができます:

 

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)))

 

この XPath 式 は、以下のとおり作動します:

 

1.式のif 句は、 要素 $XML1/Root/CustomerCode が文字列 All を含むかをテストします。
2.要素 $XML1/Root/CustomerCode  が文字列 All 含まない場合、 $XML1/Root/CustomerCode 要素 のコンテンツに等しいCustomerCode 要素 コンテンツ を持つすべての Order 要素の OrderAmount 要素はが選択されます。これは、エンドユーザーにより選択されたカスタマーの Order 要素の数量になります。 カスタマーの CustomerCode は、 $XML1 ページソースに保管されています (トップページ: アクショングループ、サブページへ移動を参照)。
3.要素 $XML1/Root/CustomerCode が 文字列 All含む場合、 すべての OrderAmount 要素が選択されます。

 

選択された OrderAmount 要素 は、 XPath の sum() 関数を使用して集計されます。 sum() 関数は、xs:double 型 を使用するため、 xs:double 数値を返します。数量は通貨が必要とする、2 つの小数点とともに表示されます。ですから、xs:decimal 型コンバーター を使用して、 xs:double に四捨五入し、2 つの小数点を使用します。

 

 


(C) 2019 Altova GmbH