[xsl] Conditional field content generation

Subject: [xsl] Conditional field content generation
From: Eugene Bernard <eugene.bernard@xxxxxxxxx>
Date: Tue, 17 Feb 2009 12:14:55 +0530
Hi all,

I am using the below xml & xsl files to create a report, where i need
additional column
on the right most, where the column content is based on below condition.

the new field content should be OK if <desc2> values is same and first
6 characters of
<desc1> value should also be same.

I need a help in XSL please.

XML Source :
==========
  <?xml version="1.0" ?>
- <pcor>
- <record>
  <date>2009-02-12</date>
  <desc1>CF24901R</desc1>
  53885
  <desc2>53885</desc2>
  <dqty>2.00</dqty>
  <dwt>46.00000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>SF00204R</desc1>
  53885
  <desc2>53885</desc2>
  <dqty>2.00</dqty>
  <dwt>5.00000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>SF00204R</desc1>
  53885
  <desc2>53885</desc2>
  <dqty>2.00</dqty>
  <dwt>5.00000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>CF24904R</desc1>
  53885
  <desc2>53885</desc2>
  <aqty>1.00</aqty>
  <awt>23.00000</awt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>AF02904R</desc1>
  53885
  <desc2>53885</desc2>
  <aqty>1.00</aqty>
  <awt>20.00000</awt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>SF002004</desc1>
  53885
  <desc2>53885</desc2>
  <aqty>4.00</aqty>
  <awt>10.00000</awt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>AF41101R</desc1>
  53875
  <desc2>53875</desc2>
  <dqty>2.00</dqty>
  <dwt>24.00000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>AF4110N1</desc1>
  53875
  <desc2>53875</desc2>
  <aqty>2.00</aqty>
  <awt>24.00000</awt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>AF399001</desc1>
  53864
  <desc2>53864</desc2>
  <dqty>1.00</dqty>
  <dwt>44.50000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>AF3990N1</desc1>
  53864
  <desc2>53864</desc2>
  <aqty>1.00</aqty>
  <awt>44.50000</awt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>EF05801G</desc1>
  53867
  <desc2>53867</desc2>
  <dqty>20.00</dqty>
  <dwt>200.00000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>EF05801E</desc1>
  53867
  <desc2>53867</desc2>
  <aqty>20.00</aqty>
  <awt>200.00000</awt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>EF05801G</desc1>
  53874
  <desc2>53874</desc2>
  <dqty>16.00</dqty>
  <dwt>160.00000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>EF05801E</desc1>
  53874
  <desc2>53874</desc2>
  <aqty>16.00</aqty>
  <awt>160.00000</awt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>AF017031</desc1>
  53862
  <desc2>53862</desc2>
  <dqty>1.00</dqty>
  <dwt>92.00000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>AF007031</desc1>
  53862
  <desc2>53862</desc2>
  <aqty>1.00</aqty>
  <awt>71.00000</awt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>BF057013</desc1>
  53748
  <desc2>53748</desc2>
  <dqty>1.00</dqty>
  <dwt>23.00000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>KF067063</desc1>
  53653
  <desc2>53653</desc2>
  <dqty>2.00</dqty>
  <dwt>49.00000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>CF326004</desc1>
  53773
  <desc2>53773</desc2>
  <dqty>2.00</dqty>
  <dwt>130.80000</dwt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>AF057023</desc1>
  53748
  <desc2>53748</desc2>
  <aqty>4.00</aqty>
  <awt>30.40000</awt>
  </record>
- <record>
  <date>2009-02-12</date>
  <desc1>CF325004</desc1>
  53773
  <desc2>53773</desc2>
  <aqty>2.00</aqty>
  <awt>170.00000</awt>
  </record>
  </pcor>


XSL Source :
==========

  <?xml version="1.0" encoding="ISO-8859-1" ?>
- <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
- <xsl:template match="/">
- <html>
- <body>
- <table border="1" cellpadding="4" cellspacing="0">
- <tr bgcolor="#9acd32">
  <th>Date</th>
  <th>Desc1</th>
  <th>Desc2</th>
  <th>Add Qty</th>
  <th>Add Wt</th>
  <th>Del Qty</th>
  <th>Del Wt</th>
  <th>Remarks</th>
  </tr>
- <xsl:for-each select="pcor/record">
- <tr>
- <td>
  <xsl:value-of select="date" />
  </td>
- <td>
  <xsl:value-of select="desc1" />
  </td>
- <td>
  <xsl:value-of select="desc2" />
  </td>
- <td align="right">
  <xsl:value-of select="aqty" />
  </td>
- <td align="right">
  <xsl:value-of select="awt" />
  </td>
- <td align="right">
  <xsl:value-of select="dqty" />
  </td>
- <td align="right">
  <xsl:value-of select="dwt" />
  </td>
  </tr>
  </xsl:for-each>
  </table>
  </body>
  </html>
  </xsl:template>
  </xsl:stylesheet>

Regards
Eugene

Current Thread