Subject: [xsl] sorting and grouping From: gopinath_emmidisetty@xxxxxxxxxxxxxxx Date: Tue, 19 Oct 2004 16:16:17 +0100 |
Hi, I have an xml document with x number of documents and I want to display them in columns in different pages say 1-10, 11-20, etc. Also, I want to sort by clicking the columns. I have managed to display the records in different pages and partly acheived the sorting. But the sorting is applied to that selected group of records for e.g., if 11-20 records are selected then sorting is applied to 11-20 records. I want to apply the sorting to all records and then display only that group of records. I have tried to change the xsl file but not getting the result, I want. Also, I don't know whether it is possible to debug the xsl document. Can somebody look at my xml document and the xsl file and tell me what am I doing wrong or any other possible ways of acheiving the results. Please let me know, if I miss any information to help me. Many thanks. My XML file <viewentries> <viewentry position="1"> <entrydata columnnumber="0" name="AA_EMPSTAFFNUMBER"> <text>1001</text></entrydata> <entrydata columnnumber="1" name="aa_EmpFirstName"> <text>Shel</text></entrydata> <entrydata columnnumber="2" name="aa_EmpLastName"> <text>Easey</text></entrydata> <entrydata columnnumber="3" name="aa_Status"> <text>Awaiting first level review</text></entrydata> </viewentry> <viewentry position="2"> <entrydata columnnumber="0" name="AA_EMPSTAFFNUMBER"> <text>1002</text></entrydata> <entrydata columnnumber="1" name="aa_EmpFirstName"> <text>Dave</text></entrydata> <entrydata columnnumber="2" name="aa_EmpLastName"> <text>Johnny</text></entrydata> <entrydata columnnumber="3" name="aa_Status"> <text>Awaiting employee acceptance</text></entrydata> </viewentry> <viewentry position="3"> <entrydata columnnumber="0" name="AA_EMPSTAFFNUMBER"> <text>1003</text></entrydata> <entrydata columnnumber="1" name="aa_EmpFirstName"> <text>Rob</text></entrydata> <entrydata columnnumber="3" name="aa_EmpLastName"> <text>Tom</text></entrydata> <entrydata columnnumber="4" name="aa_Status"> <text>Awaiting third level review</text></entrydata> </viewentry> <viewentry position="4"> <entrydata columnnumber="0" name="AA_EMPSTAFFNUMBER"> <text>1004</text></entrydata> <entrydata columnnumber="1" name="aa_EmpFirstName"> <text>Phil</text></entrydata> <entrydata columnnumber="3" name="aa_EmpLastName"> <text>Byle</text></entrydata> <entrydata columnnumber="4" name="aa_Status"> <text>Awaiting second level review</text></entrydata> </viewentry> </viewentries> My XSL file is <xsl:stylesheet version="1.0"> <xsl:output method="xml" omit-xml-declaration="yes"/> <xsl:param name="startDoc" select="1"/> <xsl:param name="endDoc" select="4"/> <xsl:param name="sortCol" select="3"/> <xsl:template match="/"> <div> <table class="catalog_row1"><tr> <td>Total documents:<xsl:value-of select="count(./viewentries/viewentry)" /> </td> </tr></table> <br/> <!-- <xsl:apply-templates select="viewentries" /> --> <xsl:apply-templates select="viewentries"> <!-- <xsl:sort select="viewentry/entrydata[@columnnumber=number($sortCol)]"/> --> </xsl:apply-templates> </div> </xsl:template> <xsl:template match="viewentries"> <table class="catalog_table"> <xsl:apply-templates select="viewentry[ (@position >= number($startDoc)) and (@position <= number($endDoc) ) ]"> <xsl:sort select="entrydata[@columnnumber=number($sortCol)]"/> </xsl:apply-templates> </table> </xsl:template> <xsl:template match="viewentry"> <xsl:if test="position()=1"> <tr class="catalog_genre_head"> <td colspan="4"> View of documents - Total documents: <xsl:value-of select="count(../viewentry)" /> </td> </tr> <tr class="catalog_head"> <td>EmpID</td> <td>First Name</td> <td>Last Name</td> <td>Status</td> </tr> </xsl:if> <!-- <tr class="catalog_row0"> --> <tr class="catalog_row0"> <!-- <xsl:apply-templates select="entrydata" /> --> <xsl:apply-templates select="entrydata" /> </tr> </xsl:template> <xsl:template match="entrydata[@columnnumber=0]"> <td width="50"> <a> <xsl:attribute name="href"> /MyRef/Downloads/Domino/catview.nsf/0/<xsl:value-of select="text" />?open </xsl:attribute><xsl:value-of select="text" /></a> </td> </xsl:template> <xsl:template match="entrydata[@columnnumber=1]"> <td width="150"> <xsl:value-of select="text" /> </td> </xsl:template> <xsl:template match="entrydata[@columnnumber=2]"> <td width="150"> <xsl:value-of select="text" /> </td> </xsl:template> <xsl:template match="entrydata[@columnnumber=3]"> <td width="300"> <xsl:value-of select="text" /> </td> </xsl:template> </xsl:stylesheet> I am linking both xml and xsl through another html document using Javascript. The output will be something like this Total documents:4 | Pages 1-2 3-4 View of documents - Total documents: 4 EmpID First Name Last Name Status 1002 Dave John Awaiting employee acceptance 1001 Shel Easey Awaiting first level review 1004 Phil Byle Awaiting second level review 1003 Rob Tom Awaiting third level review
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
AW: [xsl] Stripping or converting H, Huditsch Roman | Thread | RE: [xsl] sorting and grouping, Pieter Reint Siegers |
AW: [xsl] Stripping or converting H, Huditsch Roman | Date | Re: [xsl] Stripping or converting H, Bruce D'Arcus |
Month |