Subject: Re: [xsl] Pivot Reports From: "D O" <djo267@xxxxxxxxxxx> Date: Fri, 5 Jan 2007 10:14:40 -0500 |
Do you have a sample html of the output you want, given the test data? This way we can see what exactly you are trying to do...
Dan Ochs, Principal Consultant Wrycan, Inc http://www.wrycan.com dan(dot)ochs(at)wrycan(dot)com
This is my XSL template:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:key name="b" match="pivotrow" use="."/> <xsl:key name="c" match="pivotcol" use="."/> <xsl:template match="/"> <xsl:for-each select="/notice/records/record/row"> <br/> <xsl:for-each select="pivot1"> <table border="1" cellspacing="0" class="stn"> <tr> <th>*</th> <xsl:for-each select="item/pivotrow"> <xsl:sort select="."/> <xsl:variable name="vpivotrow" select="."/> <th> <xsl:value-of select="."/> </th> </xsl:for-each> <th>total</th> </tr> <xsl:for-each select="item/pivotcol[generate-id(.)=generate-id(key('c',.)[1])]"> <xsl:sort select="."/> <xsl:variable name="vpivotcol" select="."/> <tr> <th><xsl:value-of select="."/></th> <xsl:for-each select="../../item/pivotrow[generate-id(.)=generate-id(key('b',.)[1])]"> <xsl:variable name="vpivotrow" select="."/> <td> <xsl:if test="not(../../item[pivotcol=$vpivotcol and pivotrow=$vpivotrow])">-</xsl:if> <xsl:if test="../../item[pivotcol=$vpivotcol and pivotrow=$vpivotrow]"><xsl:value-of select="../../item[pivotcol=$vpivotcol and pivotrow=$vpivotrow]/TOTALS"/></xsl:if> </td> </xsl:for-each> <td><xsl:value-of select="sum(../../item[pivotcol=$vpivotcol]/TOTALS)"/></td> </tr> </xsl:for-each> <tr> <th>total</th> <xsl:for-each select="item/pivotrow[generate-id(.)=generate-id(key('b',.)[1])]"> <xsl:sort select="."/> <xsl:variable name="vpivotrow" select="."/> <td> <xsl:value-of select="sum(../../item[pivotrow=$vpivotrow]/TOTALS)"/> </td> </xsl:for-each> <td><xsl:value-of select="sum(item/TOTALS)"/></td> </tr> </table> </xsl:for-each>
<xsl:for-each select="pivot2"> <table border="1" cellspacing="0" class="stn"> <tr> <th>*</th> <xsl:for-each select="item/pivotrow"> <xsl:sort select="."/> <xsl:variable name="vpivotrow" select="."/> <th> <xsl:value-of select="."/> </th> </xsl:for-each> <th>total</th> </tr> <xsl:for-each select="item/pivotcol[generate-id(.)=generate-id(key('c',.)[1])]"> <xsl:sort select="."/> <xsl:variable name="vpivotcol" select="."/> <tr> <th><xsl:value-of select="."/></th> <xsl:for-each select="../../item/pivotrow[generate-id(.)=generate-id(key('b',.)[1])]"> <xsl:variable name="vpivotrow" select="."/> <td> <xsl:if test="not(../../item[pivotcol=$vpivotcol and pivotrow=$vpivotrow])">-</xsl:if> <xsl:if test="../../item[pivotcol=$vpivotcol and pivotrow=$vpivotrow]"><xsl:value-of select="../../item[pivotcol=$vpivotcol and pivotrow=$vpivotrow]/TOTALS"/></xsl:if> </td> </xsl:for-each> <td><xsl:value-of select="sum(../../item[pivotcol=$vpivotcol]/TOTALS)"/></td> </tr> </xsl:for-each> <tr> <th>total</th> <xsl:for-each select="item/pivotrow[generate-id(.)=generate-id(key('b',.)[1])]"> <xsl:sort select="."/> <xsl:variable name="vpivotrow" select="."/> <td> <xsl:value-of select="sum(../../item[pivotrow=$vpivotrow]/TOTALS)"/> </td> </xsl:for-each> <td><xsl:value-of select="sum(item/TOTALS)"/></td> </tr> </table> </xsl:for-each> </xsl:for-each> </xsl:template> </xsl:stylesheet>
In result i have right view of first table, in second table i have only columns and rows which not exists in first table etc.
Seems I have version 1.0
Abel Braaksma wrote: > Vitaliy Paykov wrote: >> I need xsl template for crosstab building. >> >> But not for one table, i need several crosstabs in one xsl template. >> >> My XML: > > Where is your XSLT that you've got so far and where did you get stuck? > What is the XSLT version you use? > > -- Abel > >
-- */Best regards, Vitaliy Paykov/* e-mail: vpay@xxxxxxxxx ext: 1120 ICQ: 220022522 */ISD QA/*
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Pivot Reports, Vitaliy Paykov | Thread | Re: [xsl] Pivot Reports, Vitaliy Paykov |
Re: [xsl] Pivot Reports, Vitaliy Paykov | Date | Re: [xsl] Pivot Reports, Vitaliy Paykov |
Month |