[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Sorting on the SUM aggregate

Subject: Sorting on the SUM aggregate
From: "David Petersen" <david@xxxxxxxxxxxxxx>
Date: Thu, 3 Apr 2003 16:57:19 -0600
format number sum
I have the following XML document and XSL to which have been the subject
of another question on this list. The XSL creates a presentation that
shows the totals for each BrochureName.  The problem with the code is
that it sorts across the whole document so when you look at the
presentation, it appears that it isn't sorted if one of the aggregate
fields are selected to sort on.  Does anyone know of a way to sort on
the result of the Aggregate SUM?

<xsl:for-each select="RECORD[count(. |
key('listofbrochures',BrochureName)[1]) = 1]">
		<xsl:sort select="*[local-name()=$sortfield]"
order="{$sortorder}" data-type="{$datatype}" />
		<xsl:variable name="currentGroup"
select="key('listofbrochures', BrochureName)" />
		<tr>
			<xsl:attribute name="bgcolor">
				<xsl:choose>
					<xsl:when test="(position() mod
2) = 0">#d3d3d3</xsl:when>
	
<xsl:otherwise>#ffffff</xsl:otherwise>
				</xsl:choose>
			</xsl:attribute>

			<td nowrap="true" class="dataValue">
						<xsl:value-of
select="BrochureName"/>
			</td>
			<td align="center" class="dataValue">
				<xsl:value-of
select="format-number(BrochureID,'#,##0')"/>
			</td>
			<td align="right" class="dataValue">
				<xsl:value-of
select="format-number(sum($currentGroup/ProjectedUnits),'#,##0')"/>
			</td>
			<td align="right" class="dataValue">
				<xsl:value-of
select="format-number(sum($currentGroup/SalesRepProjectedUnits),'#,##0')
"/>
			</td>
			<td align="right" class="dataValue">
				<xsl:value-of
select="format-number(sum($currentGroup/ProjectedForActual),'#,##0')"/>
			</td>
			<td align="right" class="dataValue">
				<xsl:value-of
select="format-number(sum($currentGroup/SalesRepProjectedForActual),'#,#
#0')"/>
			</td>
			<td align="right" class="dataValue">
				<xsl:value-of
select="format-number(sum($currentGroup/ActualUnits),'#,##0')"/>
			</td>
			<td align="right" class="dataValue">
				<xsl:value-of
select="format-number(sum($currentGroup/RemainingProjected),'#,##0')"/>
			</td>
		</tr>
</xsl:for-each>

<?xml version="1.0"?>
<DATA>
	<RECORD>
		<SalesPersonID>FB02</SalesPersonID>
		<SalesRepFullName>Salesman 1</SalesRepFullName>
		<BrochureID>165</BrochureID>
		<BrochureName>BROCHURE 1</BrochureName>
		<GroupName>DistRep</GroupName>
		<SeasonName>Spring 2003</SeasonName>
		<ProjectedUnits>500</ProjectedUnits>
		<SalesRepProjectedUnits>300</SalesRepProjectedUnits>
		<ProjectedForActual>0</ProjectedForActual>
	
<SalesRepProjectedForActual>0</SalesRepProjectedForActual>
		<ActualUnits>0</ActualUnits>
		<RemainingProjected>500</RemainingProjected>
	</RECORD>
	<RECORD>
		<SalesPersonID>FB02</SalesPersonID>
		<SalesRepFullName>Salesman 2</SalesRepFullName>
		<BrochureID>165</BrochureID>
		<BrochureName>BROCHURE 1</BrochureName>
		<GroupName>DistRep</GroupName>
		<SeasonName>Spring 2003</SeasonName>
		<ProjectedUnits>500</ProjectedUnits>
		<SalesRepProjectedUnits>300</SalesRepProjectedUnits>
		<ProjectedForActual>0</ProjectedForActual>
	
<SalesRepProjectedForActual>0</SalesRepProjectedForActual>
		<ActualUnits>0</ActualUnits>
		<RemainingProjected>500</RemainingProjected>
	</RECORD>
	<RECORD>
		<SalesPersonID>FB02</SalesPersonID>
		<SalesRepFullName>Salesman 1</SalesRepFullName>
		<BrochureID>165</BrochureID>
		<BrochureName>BROCHURE 2</BrochureName>
		<GroupName>DistRep</GroupName>
		<SeasonName>Spring 2003</SeasonName>
		<ProjectedUnits>500</ProjectedUnits>
		<SalesRepProjectedUnits>300</SalesRepProjectedUnits>
		<ProjectedForActual>0</ProjectedForActual>
	
<SalesRepProjectedForActual>0</SalesRepProjectedForActual>
		<ActualUnits>0</ActualUnits>
		<RemainingProjected>500</RemainingProjected>
	</RECORD>
	<RECORD>
		<SalesPersonID>FB02</SalesPersonID>
		<SalesRepFullName>Salesman 2</SalesRepFullName>
		<BrochureID>165</BrochureID>
		<BrochureName>BROCHURE 2</BrochureName>
		<GroupName>DistRep</GroupName>
		<SeasonName>Spring 2003</SeasonName>
		<ProjectedUnits>500</ProjectedUnits>
		<SalesRepProjectedUnits>300</SalesRepProjectedUnits>
		<ProjectedForActual>0</ProjectedForActual>
	
<SalesRepProjectedForActual>0</SalesRepProjectedForActual>
		<ActualUnits>0</ActualUnits>
		<RemainingProjected>500</RemainingProjected>
	</RECORD>
</DATA>




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.