0
我使用遞歸函數來計算每個發票和每個客戶端的計算列(價格*數量)的總和。現在我需要計算每個客戶的所有發票和所有客戶的所有發票的總額。如何使用遞歸函數計算總和
XML看起來是這樣的:
<cinvoices>
<client> (with information @ client) </client>
<invoices>
<products>
<product> (information @ product: name, type ect and..
<price>123</price>
<quantity>21</quantity>
</product>
<product> (information @ product: name, type ect and..
<price>123</price>
<quantity>11</quantity>
</product>
</products>
<invoices>
<products>
<product> (information @ product: name, type ect and..
<price>32</price>
<quantity>3</quantity>
</product>
<product> (information @ product: name, type ect and..
<price>12</price>
<quantity>9</quantity>
</product>
</products>
</invoices>
</client>
<client>
<same as above>
</client>
</cinvoices>
在XSLT使用的功能是:
<xsl:template name="sumProducts">
<xsl:param name="pList"/>
<xsl:param name="pRunningTotal" select="0"/>
<xsl:choose>
<xsl:when test="$pList">
<xsl:variable name="varMapPath" select="$pList[1]"/>
<xsl:call-template name="sumProducts">
<xsl:with-param name="pList" select="$pList[position() > 1]"/>
<xsl:with-param name="pRunningTotal"
select="$pRunningTotal + $varMapPath/price * $varMapPath/quantity"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
$<xsl:value-of select="format-number($pRunningTotal, '#,##0.00')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
==================== = 函數調用如下:
不知道如何使用此功能來計算總髮票爲每個客戶端和GRA總共爲所有客戶和所有發票。
謝謝。
謝謝盧卡斯爲您的時間。我已經找到了使用相同原理的解決方案。它解決了問題! –
@FloreDraw很棒,所以現在你應該粘貼並接受你的解決方案,或者簡單地接受我的:) – Lukasz
通過使用這個模板,如何計算每個客戶類型(客戶有A型或B型或C型)的平均值。同樣使用相同的模板如何計算每個類別的6個頂級發票和最高和最低發票。謝謝 –