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

RE: for-each and summing based on group

Subject: RE: for-each and summing based on group
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 5 Jan 2005 23:12:29 -0000
for each group and xsl
Sorry, I should have made it clear that to use XSLT 2.0 you need an XSLT 2.0
processor. For most people this means using Saxon 8.x, though there are a
couple of other XSLT 2.0 processors becoming available.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: dmitrik@xxxxxxxxxxxxxx [mailto:dmitrik@xxxxxxxxxxxxxx] 
> Sent: 05 January 2005 21:33
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE:  for-each and summing based on group
> 
> I'd rather use 1 if there is a simpler way to calculate 
> subtotals for this group.
> If it is easier with 2, how is it invoked?
> 
> Thanks,
> Dmitri
> 
> -----Original Message-----
> From: Michael Kay <mike@xxxxxxxxxxxx>
> Sent: Jan 5, 2005 2:31 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE:  for-each and summing based on group
> 
> If you want maximum compatibility when running a 1.0 
> stylesheet under a 2.0
> processor, leave the code completely unchanged - i.e. leave 
> version="1.0".
> If you change it to say version="2.0" then you get more rigorous
> type-checking: this won't allow implicit type conversions 
> such as comparing
> a string to an integer. In this example you have to change 
> the code to make
> it clear whether you want the integer converted to a string 
> or vice-versa.
> 
> Michael Kay
> http://www.saxonica.com/  
> 
> > -----Original Message-----
> > From: dmitrik@xxxxxxxxxxxxxx [mailto:dmitrik@xxxxxxxxxxxxxx] 
> > Sent: 05 January 2005 19:12
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: RE:  for-each and summing based on group
> > 
> > during a quick online search didn't see any example:
> > 
> > does 1.0 just change to 2.0 in the following?
> > 
> > <?xml version="1.0" encoding="UTF-8"?>
> > <xsl:stylesheet
> >    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> >    version="1.0">
> > 
> > 
> > 
> > -----Original Message-----
> > From: Michael Kay <mike@xxxxxxxxxxxx>
> > Sent: Jan 5, 2005 1:26 PM
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: RE:  for-each and summing based on group
> > 
> > > When changing the xsl from 1.0 to 2.0 there 
> > > were errors.
> > > Is it simpler to do that, or use Muenchian grouping for the 
> > Customer?
> > 
> > If you were saying that a stylesheet that worked under 1.0 
> > didn't work under
> > a 2.0 processor, then this is unusual and it would be nice 
> to know the
> > details.
> > 
> > Michael Kay
> > http://www.saxonica.com/
> > 
> > > 
> > > 
> > > <xsl:for-each select="Trade">
> > > 
> > > <xsl:sort select="Customer"/> 
> > > 
> > > <tr class="r{position() mod 2}">
> > > 
> > > <td><xsl:value-of select="Customer"/> </td>
> > > 
> > > <td><xsl:value-of select="TradeId"/><xsl:text/></td>
> > > 
> > > <td><xsl:value-of select="Type"/><xsl:text/></td>
> > > 
> > > <td align="right">
> > > <xsl:value-of select="format-number(sum(Step
> > >    
> > > [concat(substring(MinFlowDate,7),substring(MinFlowDate,1,2),su
> > > bstring(MinFlowDate,4,2))>=
> > > concat(substring($global,7),substring($global,1,2),substring($
> > > global,4,2))]
> > >    
> > > [concat(substring(MinFlowDate,7),substring(MinFlowDate,1,2),su
> > > bstring(MinFlowDate,4,2))<
> > > concat(substring($global,7)+3,substring($global,1,2),substring
> > > ($global,4,2))]
> > >    /StepCharge)+ sum(Step
> > >    
> > > [concat(substring(MinFlowDate,7),substring(MinFlowDate,1,2),su
> > > bstring(MinFlowDate,4,2))>=
> > > concat(substring($global,7),substring($global,1,2),substring($
> > > global,4,2))]
> > >    
> > > [concat(substring(MinFlowDate,7),substring(MinFlowDate,1,2),su
> > > bstring(MinFlowDate,4,2))<
> > > concat(substring($global,7)+3,substring($global,1,2),substring
> > > ($global,4,2))]
> > >    /StepSetoff)  , '###,###,##0')"/>
> > > </td>
> > > 
> > > </xsl:for-each>
> > > 
> > > Thanks,
> > > Dmitri
> > > 
> > > -----Original Message-----
> > > From: Michael Kay <mike@xxxxxxxxxxxx>
> > > Sent: Jan 5, 2005 4:50 AM
> > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > Subject: RE:  for-each and summing based on group
> > > 
> > > First read up about standard grouping techniques such as 
> > > Muenchian grouping
> > > at http://www.jenitennison.com/xslt/grouping
> > > 
> > > Computing a subtotal for each group is then a minor variant of the
> > > technique: instead of merely iterating over the items in the 
> > > group using
> > > xsl:for-each, you can assign the node-set comprising the 
> group to a
> > > variable, and then sum over that using the sum() function.
> > > 
> > > Like all grouping problems, it's much easier in 2.0:
> > > 
> > > <xsl:for-each-group select="rows" group-by="columnA">
> > >   <xsl:apply-templates select="current-group()"/>
> > >   <subtotal><xsl:value-of 
> > > select="sum(current-group()/columnB)"/></subtotal>
> > > </xsl:for-each-group>
> > > 
> > > Michael Kay
> > > http://www.saxonica.com/ 
> > > 
> > > > -----Original Message-----
> > > > From: dsk [mailto:dmitrik@xxxxxxxxxxxxxx] 
> > > > Sent: 05 January 2005 04:09
> > > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > > Subject:  for-each and summing based on group
> > > > 
> > > > 
> > > > within a for-each there might be various sets of values which 
> > > > produce the 
> > > > following grid, where val is equal to a number
> > > > 
> > > > a  val val val
> > > > a  val val val
> > > > a  val val val
> > > > b  val val val
> > > > b  val val val
> > > > c  val val val
> > > > c  val val val
> > > > 
> > > > what is the best way to insert a sum line for the first
> > > > column a, one for b, and one for c.
> > > > 
> > > > is a nested for each needed? or checking to see if the 
> > > > following value is 
> > > > not equal to the preceding, then then summing?
> > > > 
> > > > thanks,
> > > > Dmitri
> > > > 
> > > > ---
> > > > Outgoing mail is certified Virus Free.
> > > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > > Version: 6.0.802 / Virus Database: 545 - Release Date: 
> 11/26/2004

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.