In a test version of the xml there are two Customers with the same name, and
two different names.
The following xsl displays 3 unique customers, which is correct, but the
summation only
works for the two single customers, not the instance with two trades for the
same customer.
The current-group variable also does not seem to work - any idea what it
requires? Would this
instance with the outer loop grouping follow your suggestion about doing the
summation in the
inner loop?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="trade-to-step" match="Portfilio/Trade" use="Customer"/>
<xsl:template match="/">
<xsl:for-each select="Portfilio/Trade[generate-id() =
generate-id(key('trade-to-step',Customer)[1])]">
<!-- <xsl:variable name="current-group" select="Trade[Customer=
current()/Customer]"/>-->
<xsl:variable name="current-group" select="Portfilio/Trade[Customer=
current()]"/>
<table>
<tr>
<td colspan="4">
<b>
Code: <xsl:value-of select="Customer"/>
Total: <xsl:value-of
select="sum(Step/StepCharge_TTBlack)"/>
</b>
</td>
</tr>
<tr>
<td>Amount</td>
</tr>
<xsl:for-each select="$current-group">
<tr>
<td>
<xsl:value-of select="Trade/NotionalRec"/>
</td>
</tr>
</xsl:for-each>
<tr>
<td colspan="4">
<i>
<!-- Total: <xsl:value-of
select="sum($current-group/NotionalRec)"/>-->
Total: <xsl:value-of
select="sum(Step/StepCharge_TTBlack)"/>
</i>
</td>
</tr>
</table>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Thanks,
Dmitri
-----Original Message-----
From: David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk>
Sent: Dec 6, 2004 11:18 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] grouping and sum
Is it possible to group the whole xml document by the Customers node
without hardcoding a specific customer?
yes see jeni's site.
http://jenitennison.com/xslt/grouping
You may find it easiest not tp try doing grouping and summation all
inone step, but rather o a first pass that just does grouping, then use
easier XPaths that call sum() once all teh nodes that you want to sum
are grouped together.
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--