xsl-list
[Top] [All Lists]

RE: Grouping and Subtotals

2003-04-01 11:47:06
David,

At 12:40 PM 4/1/2003, you wrote:
After the <xsl:for-each select> line, I created a $currentGroup
variable.  I then used it during the sum operation.  So far in my
testing, it appears to work.  Can anyone see anything wrong with this?

No, it is perfectly orthodox and designed to work like this.

You have bound your grouped nodes, together (i.e. as a set), to your variable, scoped within the for-each instruction. It being a node set, you can traverse from it, as you've discovered. Since your processor has the variable, it is spared having to call the key() function repeatedly (and the code is a little easier to read, too).

You don't need that extra self::node() step, however; for

$currentGroup/./ActualUnits

you will find that $currentGroup/ActualUnits will work just as well (and microseconds faster).

Cheers,
Wendell

        <xsl:variable name="currentGroup" select="key('listofbrochures',
BrochureName)" />

...

                                <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')"/
>


======================================================================
Wendell Piez                            
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


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



<Prev in Thread] Current Thread [Next in Thread>