xsl-list
[Top] [All Lists]

Re: [xsl] Display the number of records in a group

2010-03-09 04:10:45
Hi,

i got my required out put when i tried like below..

<xsl:template name="ttpgds" match="ARXEURSL" mode="temp2">
<xsl:param name="gdserv" />
<xsl:param name="triangle" />
<xsl:variable name="x"> 
<xsl:for-each-group select="G_ROW[INTRA_EU_TRX_CODE
=($gdserv,$triangle)]"
group-by="concat(VAT_TAX_NO,BILL_CUST_NAME,INTRA_EU_TRX_CODE)">
<P><xsl:value-of select="position()"/></P><xsl:text>&#xD;</xsl:text>
</xsl:for-each-group>
</xsl:variable>
<xsl:for-each select="$x">
<xsl:value-of select="max(P)"/>
</xsl:for-each>
</xsl:template>


The below  condition has not worked for me because
<xsl:if test="position()=last()">

last() - this  is returning total records in the group G_ROW ( which are 11 )
where as..
postion() - returning position of current record
 (  in my logic max value of position() is 8,  as 11 records are
grouping into 8 bcoz of condition
group-by="concat(VAT_TAX_NO,BILL_CUST_NAME,INTRA_EU_TRX_CODE) )

Hence the condition  "position()=last()" ( 8 = 11)   never occurs, so
iam failing to display the  last record.


Thanks for you Time

Regards
Anil




On Tue, Mar 9, 2010 at 11:59 AM, anil kumar 
<anar(_dot_)leti(_at_)gmail(_dot_)com> wrote:
Hi,

Sorry if i confused you.

Let me explain more clearly

My xml consists of 11 records ,
================================
123 ABC GOOD 10
123 ABC GOOD 20
123 ABC GOOD 30

456 DEF GOOD 10
789 GHI GOOD 10
567 JKL GOOD 10

234 BCD GOOD 20
345 CDE GOOD 20

678 TTT TRIANGULATION 30
678 TTT TRIANGULATION 20

321 TRT TRIANGULATION 20
================================

when i used  group-by="concat(VAT_TAX_NO,BILL_CUST_NAME,INTRA_EU_TRX_CODE)">
These 11 records are grouping  into "8" records.
and i want to capture this value and show it in o/p

these are the ways i tried..
<xsl:value-of select="count(current-group())"/>   giving o/p as
<mezo eazon="0A0001D003A">31111121</mezo>
<xsl:value-of select="last()"/>                          giving o/p as
 <mezo eazon="0A0001D003A">1111111111111111</mezo>
<xsl:value-of select="position()"/>                    giving o/p as
<mezo eazon="0A0001D003A">12345678</mezo>


expected o/p
<mezo eazon="0A0001D003A">8</mezo>

Thanks
Anil

On Mon, Mar 8, 2010 at 6:46 PM, David Carlisle 
<davidc(_at_)nag(_dot_)co(_dot_)uk> wrote:
On 08/03/2010 13:04, anil kumar wrote:

How to show the toatal number of records,
ima failing to get this by  last()
because iam  grouping 11 records into 8 , so the value of last() is
giving 11  which is in correct



I didn't understand that comment, but inside xsl:for-each-group

<xsl:value-of select="last()"/> gives you the number of groups

<xsl:value-of select="count(current-group())"/> gives the number of items in
the current group.

I'm not sure which of these numbers you want.

David


________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--