Subject: [xsl] Re: Display the number of records in a group From: anil kumar <anar.leti@xxxxxxxxx> Date: Wed, 17 Mar 2010 21:45:50 +0530 |
Hi David, Iam using Oracle XSLT processor, and in my out put it is dispalying position()= 8 , last() = 11 so, is there any other way to capture the last record in a group (or) to capture maximum postion value without using "position()=last()" condition. In jdev When i used function MAX( element name) it is showing correct value But the same ( max function ) is erroring out in oracle Applications ( may be because of different XMl praser. ) how can i acheive this Any suggestions? Thanks Anil =============================== That would be a bug. In every context where XSLT is iterating over a sequence and position() has a value at all then position(0 takes on all values between 1 and last() inclusive. Of course if you have a conditional section within the scope of position then position()=last() might never be true eg <xsl:for-each select="*"> <xsl:if test="self::foo"> <xsl:if tets="position()=last()"... will not be true if the last node is not foo, however I don't see any such conditional code in your code fragments. David On 09/03/2010 10:10, anil kumar wrote: > Hence the condition "position()=last()" ( 8 = 11) never occurs, so > iam failing to display the last record. ========================= HI, I want to display the number of records in a group, expected o/p is <mezo eazon="0A0001D003A">8</mezo> current o/p : <mezo eazon="0A0001D003A">11111111</mezo> my xsl : <xsl:template match="/"> <mezo eazon="0A0001D003A"> <xsl:apply-templates select=".//ARXEURSL" mode="temp2"> </xsl:apply-templates></mezo><xsl:text>
</xsl:text> </xsl:template> <xsl:template name="ttpgds" match="ARXEURSL" mode="temp2"> <xsl:for-each-group select="G_ROW[INTRA_EU_TRX_CODE = ('GOOD','TRIANGULATION')]" group-by="concat(VAT_TAX_NO,BILL_CUST_NAME,INTRA_EU_TRX_CODE)"> <xsl:value-of select="sum(count(COUNTRY_CODE))"/> </xsl:for-each-group> </xsl:template> </xsl:stylesheet> 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 my xml : <?xml version="1.0" encoding="UTF-8"?> <ARXEURSL> <P_REPORT_TYPE>D</P_REPORT_TYPE> <P_INTRA_EU_GOODS_TRX>GOOD</P_INTRA_EU_GOODS_TRX> <P_INTRA_EU_SERVICES_TRX>SERVICE</P_INTRA_EU_SERVICES_TRX> <P_INTRA_EU_VAT_TRX_1>TRIANGULATION</P_INTRA_EU_VAT_TRX_1> <G_SOB> <SOB_NAME>Progress UK</SOB_NAME> <TRADER_VAT_NO>BE21212121</TRADER_VAT_NO> <SOB_CURRENCY>GBP</SOB_CURRENCY> </G_SOB> <G_REMIT_TO> <ADDRESS1>TEST ADD FOR XML Testing BE</ADDRESS1> <ADDRESS2/> <ADDRESS3/> <ADDRESS4/> <CITY>VIZAG</CITY> <POSTAL_CODE>54321</POSTAL_CODE> <STATE/> <COUNTRY/> </G_REMIT_TO> <G_ROW> <COUNTRY_CODE>BE</COUNTRY_CODE> <VAT_TAX_NO>123</VAT_TAX_NO> <BILL_CUST_NAME>ABC</BILL_CUST_NAME> <ACCTD_AMOUNT>10</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>GOOD</INTRA_EU_TRX_CODE> </G_ROW> <G_ROW> <COUNTRY_CODE>BE</COUNTRY_CODE> <VAT_TAX_NO>123</VAT_TAX_NO> <BILL_CUST_NAME>ABC</BILL_CUST_NAME> <ACCTD_AMOUNT>20</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>GOOD</INTRA_EU_TRX_CODE> </G_ROW> <G_ROW> <COUNTRY_CODE>BE</COUNTRY_CODE> <VAT_TAX_NO>123</VAT_TAX_NO> <BILL_CUST_NAME>ABC</BILL_CUST_NAME> <ACCTD_AMOUNT>30</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>GOOD</INTRA_EU_TRX_CODE> </G_ROW> <G_ROW> <COUNTRY_CODE>AT</COUNTRY_CODE> <VAT_TAX_NO>456</VAT_TAX_NO> <BILL_CUST_NAME>DEF</BILL_CUST_NAME> <ACCTD_AMOUNT>10</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>GOOD</INTRA_EU_TRX_CODE> </G_ROW> <G_ROW> <COUNTRY_CODE>IND</COUNTRY_CODE> <VAT_TAX_NO>789</VAT_TAX_NO> <BILL_CUST_NAME>GHI</BILL_CUST_NAME> <ACCTD_AMOUNT>10</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>GOOD</INTRA_EU_TRX_CODE> </G_ROW> <G_ROW> <COUNTRY_CODE>IND</COUNTRY_CODE> <VAT_TAX_NO>567</VAT_TAX_NO> <BILL_CUST_NAME>JKL</BILL_CUST_NAME> <ACCTD_AMOUNT>10</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>GOOD</INTRA_EU_TRX_CODE> </G_ROW> <G_ROW> <COUNTRY_CODE>IND</COUNTRY_CODE> <VAT_TAX_NO>234</VAT_TAX_NO> <BILL_CUST_NAME>BCD</BILL_CUST_NAME> <ACCTD_AMOUNT>20</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>GOOD</INTRA_EU_TRX_CODE> </G_ROW> <G_ROW> <COUNTRY_CODE>IND</COUNTRY_CODE> <VAT_TAX_NO>345</VAT_TAX_NO> <BILL_CUST_NAME>CDE</BILL_CUST_NAME> <ACCTD_AMOUNT>20</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>GOOD</INTRA_EU_TRX_CODE> </G_ROW> <G_ROW> <COUNTRY_CODE>UK</COUNTRY_CODE> <VAT_TAX_NO>678</VAT_TAX_NO> <BILL_CUST_NAME>TTT</BILL_CUST_NAME> <ACCTD_AMOUNT>30</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>TRIANGULATION</INTRA_EU_TRX_CODE> </G_ROW> <G_ROW> <COUNTRY_CODE>UK</COUNTRY_CODE> <VAT_TAX_NO>678</VAT_TAX_NO> <BILL_CUST_NAME>TTT</BILL_CUST_NAME> <ACCTD_AMOUNT>20</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>TRIANGULATION</INTRA_EU_TRX_CODE> </G_ROW> <G_ROW> <COUNTRY_CODE>UK</COUNTRY_CODE> <VAT_TAX_NO>321</VAT_TAX_NO> <BILL_CUST_NAME>TRA</BILL_CUST_NAME> <ACCTD_AMOUNT>10</ACCTD_AMOUNT> <INTRA_EU_TRX_CODE>TRIANGULATION</INTRA_EU_TRX_CODE> </G_ROW> </ARXEURSL> Thanks Anil
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Quality between XSL:FO PD, Imsieke, Gerrit, le- | Thread | Re: [xsl] Re: Display the number of, David Carlisle |
Re: [xsl] Quality between XSL:FO PD, Imsieke, Gerrit, le- | Date | Re: [xsl] Re: Display the number of, David Carlisle |
Month |