This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Adding subtotals to a report
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Fri, 19 Apr 2002 17:41:25 +0100
- Subject: RE: [xsl] Adding subtotals to a report
- Reply-to: xsl-list at lists dot mulberrytech dot com
> What I was trying to do was look for a Project element which
> has an attribute named ProjectName and the value is equal to
> the current ProjectName attribute. When I tried putting
> current() in there like so:
>
> <xsl:value-of select="sum(/*/Project[current()]/*/@Total)" />
That just tests whether the current() node exists, which it always does.
You probably need something along the lines of
Project[current()/@projectname = ProjectName]
but please read the spec to understand what this means before you try it,
don't just type it in and tell us it doesn't work.
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
>
> It gives me the same result as if I had used last().
>
> Here's a slimmed down version of the XML File.
>
> <ScheduleVariance>
> <Project ProjectName="Sales">
> <Employee EmpID="317" EmpName="Doe, Jane" SchedLen="9:00"
> ActualLen="9:33" TotalDiff="0:33"/>
> <Project ProjectName="Customer Service">
> <Employee EmpID="174" EmpName="Smith, Chris" SchedLen="9:00"
> ActualLen="8:01" TotalDiff="-0:59"/>
> </Project>
> </ScheduleVariance>
>
> Inside a for-each Project, I need to add up all of the
> "Employee/TotalDiff" attributes for the current project and
> insert the total as a new row at the bottom. Once I get one
> total working, I can replicate the process for other totals I
> need on the same row.
>
> -----Original Message-----
> From: Michael Kay [mailto:michael.h.kay@ntlworld.com]
> Sent: Friday, April 19, 2002 2:31 AM
> To: xsl-list@lists.mulberrytech.com
> Subject: RE: [xsl] Adding subtotals to a report
>
>
> > When I try summing the totals directly I get 0.
> >
> > I can do this
> > <xsl:value-of select="sum(/*/*/*/@Total)" />
> > to get an overall total for the document.
> >
> > When I try to do this:
> > <xsl:value-of select="sum(/*/Project[ProjectName =
> > @ProjectName]/*/@Total)" />
> >
> > I get 0 again. I know the data is there, I just need a
> > little help getting to it.
>
> I haven't kept your XML file and it was pretty impenetrable
> anyway, but the
> above is looking for a <Project> element that has a child
> ProjectName and an
> attribute ProjectName, both of which are equal to each other
> - which would
> seem an unlikely condition. I suspect one of these (either
> the child or the
> attribute) should be prefixed as "current()/", but I don't
> understand your
> data well enough to be sure. Send us a simplified version.
>
> Michael Kay
> Software AG
> home: Michael.H.Kay@ntlworld.com
> work: Michael.Kay@softwareag.com
> >
> > -----Original Message-----
> > From: J.Pietschmann [mailto:j3322ptm@yahoo.de]
> > Sent: Thursday, April 18, 2002 4:51 PM
> > To: xsl-list@lists.mulberrytech.com
> > Subject: Re: [xsl] Adding subtotals to a report
> >
> >
> > David Messing 477-1289 wrote:
> > > <xsl:template match="ScheduleVariance">
> > ...
> > > <td><font color="gold"><b>Total</b></font></td>
> > > <xsl:for-each select="Employee">
> > > <xsl:variable name="subtotals">
> > > <subtotal><xsl:value-of select="Total"
> > /></subtotal>
> > > </xsl:variable>
> > > <tr>
> > > <xsl:call-template name="Employee" />
> > > </tr>
> > > </xsl:for-each>
> > ...
> > > I get the report formatted the way they want it, but when I
> > try to add
> > > this to it to get subtotals, I get variable is not defined
> > or in scope.
> >
> > That's because the variable is not in scope. The scope
> > of variables is the enclosing element, in this case
> > the for-each statement working on your Employee elements.
> >
> > Why don't you access the totals directly?
> >
> > <tr>
> > <td></td>
> > <td><b>Totals</b></td>
> > <td></td>
> > <td></td>
> > <td></td>
> > <td></td>
> > <td></td>
> > <td><xsl:value-of select="sum(Employee/Total)" /></td>
> > </tr>
> >
> > J.Pietschmann
> >
> >
> > XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list