[urgent] suming the values of nodes

sireesha g 0 Tallied Votes 694 Views Share

Hi All,

I have an xml

<?xml version="1.0" encoding="UTF-8"?>
<columns>
	<column>
		<name></name>
		<displayname></displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>100</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>VersionCode</name>
		<displayname>Version Code</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>200</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>right</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>MaterialType</name>
		<displayname>Material Type</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>100</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>LotNumber</name>
		<displayname>Lot Number</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>60</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>RRComplete</name>
		<displayname>RR Complete</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>90</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>			
		</attributes>
	</column>
	<column>
		<name>ReviewerName</name>
		<displayname>Reviewer Name</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>80</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>ReviewStartDate</name>
		<displayname>Review StartDate</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>100</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>BatchNumber1</name>
		<displayname>Batch Number</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>100</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>VersionCode1</name>
		<displayname>Version Code</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>40</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>right</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>MaterialType1</name>
		<displayname>Material Type</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>10</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>LotNumber1</name>
		<displayname>Lot Number</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>60</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>RRComplete1</name>
		<displayname>RR Complete</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>90</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>			
		</attributes>
	</column>
	<column>
		<name>ReviewerName1</name>
		<displayname>Reviewer Name</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>80</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>ReviewStartDate1</name>
		<displayname>Review StartDate</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>20</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>BatchNumber2</name>
		<displayname>Batch Number</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>100</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>VersionCode2</name>
		<displayname>Version Code</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>40</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>right</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>MaterialType2</name>
		<displayname>Material Type</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>10</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>LotNumber2</name>
		<displayname>Lot Number</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>60</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>RRComplete2</name>
		<displayname>RR Complete</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>90</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>			
		</attributes>
	</column>
	<column>
		<name>ReviewerName2</name>
		<displayname>Reviewer Name</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>80</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>ReviewStartDate2</name>
		<displayname>Review StartDate</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>20</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	
</columns>

I need to loop througth the xml and need to sum the values of nodes with width.
I need to check if the sum is greater than 600(some value) i need to apply break page style.

My doubt is now how do we achieve througth xsl ?????

Dani AI

Generated

Builds on 's hint (use a numeric sum) but implements the cumulative behaviour needs: walk the column nodes left-to-right, keep a running total of each column's width, emit a page group when adding the next column would exceed the page width, then continue with the remaining columns. The pattern below is XSLT 1.0-safe and uses a recursive template to produce page chunks; integrate the page wrapper markup (header/footer) around each emitted group.

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:param name="PortraitPageWidth" select="600"/>

  <!-- entry: pass the node-set of column elements -->
  <xsl:template name="pack-columns">
    <xsl:param name="cols" select="/columns/column"/>
    <xsl:call-template name="accumulate">
      <xsl:with-param name="cols" select="$cols"/>
      <xsl:with-param name="start" select="1"/>
      <xsl:with-param name="pos" select="1"/>
      <xsl:with-param name="acc" select="0"/>
      <xsl:with-param name="page" select="1"/>
    </xsl:call-template>
  </xsl:template>

  <!-- recursive accumulator: advance pos while acc + width <= threshold -->
  <xsl:template name="accumulate">
    <xsl:param name="cols"/>
    <xsl:param name="start"/>
    <xsl:param name="pos"/>
    <xsl:param name="acc"/>
    <xsl:param name="page"/>
    <xsl:choose>
      <xsl:when test="$start &gt; count($cols)"/>
      <xsl:when test="$pos &gt; count($cols)">
        <page number="{$page}">
          <xsl:for-each select="$cols[position() &gt;= $start and position() &lt;= count($cols)]">
            <xsl:copy-of select="."/>
          </xsl:for-each>
        </page>
      </xsl:when>
      <xsl:otherwise>
        <xsl:variable name="w" select="number($cols[$pos]/attributes/attribute[name='width']/value)"/>
        <xsl:variable name="newAcc" select="$acc + $w"/>
        <xsl:choose>
          <xsl:when test="$newAcc &lt;= $PortraitPageWidth">
            <xsl:call-template name="accumulate">
              <xsl:with-param name="cols" select="$cols"/>
              <xsl:with-param name="start" select="$start"/>
              <xsl:with-param name="pos" select="$pos + 1"/>
              <xsl:with-param name="acc" select="$newAcc"/>
              <xsl:with-param name="page" select="$page"/>
            </xsl:call-template>
          </xsl:when>
          <xsl:otherwise>
            <xsl:choose>
              <xsl:when test="$pos = $start">
                <page number="{$page}"><xsl:copy-of select="$cols[$start]"/></page>
                <xsl:call-template name="accumulate">
                  <xsl:with-param name="cols" select="$cols"/>
                  <xsl:with-param name="start" select="$start + 1"/>
                  <xsl:with-param name="pos" select="$start + 1"/>
                  <xsl:with-param name="acc" select="0"/>
                  <xsl:with-param name="page" select="$page + 1"/>
                </xsl:call-template>
              </xsl:when>
              <xsl:otherwise>
                <page number="{$page}">
                  <xsl:for-each select="$cols[position() &gt;= $start and position() &lt; $pos]">
                    <xsl:copy-of select="."/>
                  </xsl:for-each>
                </page>
                <xsl:call-template name="accumulate">
                  <xsl:with-param name="cols" select="$cols"/>
                  <xsl:with-param name="start" select="$pos"/>
                  <xsl:with-param name="pos" select="$pos"/>
                  <xsl:with-param name="acc" select="0"/>
                  <xsl:with-param name="page" select="$page + 1"/>
                </xsl:call-template>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
</xsl:stylesheet>

Use the pack-columns template with your column node-set (for example, the config document's column nodes). For each emitted <page/> insert or copy your table header and emit a page break (CSS page-break-after: always or the <br class="pagebreak"/> you already use). Notes: ensure width values are numeric (non-numeric/missing widths should be normalized or defaulted to 0), and account for real rendering overhead (cell padding, borders) by lowering PortraitPageWidth accordingly. If an environment supports XSLT 2.0, the same grouping is much simpler with for-each-group and an accumulating key — consider that as an alternative.

xml_looser 3 Junior Poster

You do not need a loop
You have to be sure in which node you are
and then use sum
or use variable

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

	<xsl:template match="/">

		<xsl:variable name="sumall" select="sum(columns//column/attributes/attribute[name='width']/value)"/>
		<result>
			<item>
				<xsl:apply-templates select="columns"/>
			</item>
			<item>
				<xsl:value-of select="$sumall"/>
			</item>
		</result>
	</xsl:template>
	<xsl:template match="columns">
		<xsl:value-of select="sum(//column/attributes/attribute[name='width']/value)"/>
	</xsl:template>
</xsl:stylesheet>

result

<?xml version='1.0' ?>
<result><item>1530</item><item>1530</item></result>
sireesha g 0 Newbie Poster

Hi XML Looser,

The xpath is for giving the total sum, but my need is like if

sum:<xsl:value-of select="sum($ConfigXML/columns/column[position()&lt;2 /attributes/attribute[name='width']/value)"/>

i defined the xpath like this when the sum exceeds 600 i need to apply a page break

now i need to vary the position variable an d nned to check each time whether the valyue is greater than 600 if so i need to apply the pahe break.


please let me know hiow to do this.

xml_looser 3 Junior Poster

is this what you wanted
border 200

<?xml version='1.0' ?>
<result sideborder="200">
  <test>0  data found0</test>
  <test>1  data found100</test>
  <pagenumber>1</pagenumber>
  <test>2  data found300</test>
  <pagenumber>2</pagenumber>
  <test>2  data found400</test>
  <test>2  data found460</test>
  <test>3  data found550</test>
  <pagenumber>3</pagenumber>
  <test>3  data found630</test>
  <test>4  data found730</test>
  <pagenumber>4</pagenumber>
  <test>4  data found830</test>
  <test>4  data found870</test>
  <test>4  data found880</test>
  <test>5  data found940</test>
  <pagenumber>5</pagenumber>
  <test>5  data found1030</test>
  <test>5  data found1110</test>
  <test>6  data found1130</test>
  <pagenumber>6</pagenumber>
  <test>6  data found1230</test>
  <test>6  data found1270</test>
  <test>6  data found1280</test>
  <test>7  data found1340</test>
  <pagenumber>7</pagenumber>
  <test>7  data found1430</test>
  <test>7  data found1510</test>
  <pagenumber>8</pagenumber>
</result>

border 600

<?xml version='1.0' ?>
<result sideborder="600">
  <test>0  data found0</test>
  <test>0  data found100</test>
  <test>0  data found300</test>
  <test>0  data found400</test>
  <test>0  data found460</test>
  <test>1  data found550</test>
  <pagenumber>1</pagenumber>
  <test>1  data found630</test>
  <test>1  data found730</test>
  <test>1  data found830</test>
  <test>1  data found870</test>
  <test>1  data found880</test>
  <test>1  data found940</test>
  <test>1  data found1030</test>
  <test>1  data found1110</test>
  <test>2  data found1130</test>
  <pagenumber>2</pagenumber>
  <test>2  data found1230</test>
  <test>2  data found1270</test>
  <test>2  data found1280</test>
  <test>2  data found1340</test>
  <test>2  data found1430</test>
  <test>2  data found1510</test>
  <pagenumber>3</pagenumber>
</result>
sireesha g 0 Newbie Poster

Hi,
Thanks for your reply.
sorry , i dint get u what you explained.
could please explain me in elobarate.

I ll explain in detail what i need to do,


i have an xml

<?xml version="1.0" encoding="UTF-8" ?> 
<?xml-stylesheet type="text/xsl" href="Temp_aj.xsl"?>
<Rowsets DateCreated="2011-02-14T12:24:00" EndDate="2011-02-14T12:24:00" StartDate="2011-02-14T11:24:00" Version="12.0.2 Build(88)">
	<Rowset>
		<Columns>
			<Column Description="BatchNumber" MaxRange="1" MinRange="0" Name="BatchNumber" SQLDataType="12" SourceColumn="BatchNumber" /> 
			<Column Description="VersionCode" MaxRange="1" MinRange="0" Name="VersionCode" SQLDataType="3" SourceColumn="VersionCode" /> 
			<Column Description="MaterialType" MaxRange="1" MinRange="0" Name="MaterialType" SQLDataType="12" SourceColumn="MaterialType" /> 
			<Column Description="LotNumber" MaxRange="1" MinRange="0" Name="LotNumber" SQLDataType="4" SourceColumn="LotNumber" /> 
			<Column Description="RRComplete" MaxRange="1" MinRange="0" Name="RRComplete" SQLDataType="-6" SourceColumn="RRComplete" /> 
			<Column Description="ReviewerName" MaxRange="1" MinRange="0" Name="ReviewerName" SQLDataType="12" SourceColumn="ReviewerName" /> 
			<Column Description="ReviewStartDate" MaxRange="1" MinRange="0" Name="ReviewStartDate" SQLDataType="93" SourceColumn="ReviewStartDate" />
			<Column Description="BatchNumber1" MaxRange="1" MinRange="0" Name="BatchNumber1" SQLDataType="12" SourceColumn="BatchNumber1" /> 
			<Column Description="VersionCode1" MaxRange="1" MinRange="0" Name="VersionCode1" SQLDataType="3" SourceColumn="VersionCode1" /> 
			<Column Description="MaterialType1" MaxRange="1" MinRange="0" Name="MaterialType" SQLDataType="12" SourceColumn="MaterialType" /> 
			<Column Description="LotNumber1" MaxRange="1" MinRange="0" Name="LotNumber1" SQLDataType="4" SourceColumn="LotNumber1" /> 
			<Column Description="RRComplete1" MaxRange="1" MinRange="0" Name="RRComplete1" SQLDataType="-6" SourceColumn="RRComplete1" /> 
			<Column Description="ReviewerName1" MaxRange="1" MinRange="0" Name="ReviewerName1" SQLDataType="12" SourceColumn="ReviewerName1" /> 
			<Column Description="ReviewStartDate1" MaxRange="1" MinRange="0" Name="ReviewStartDate1" SQLDataType="93" SourceColumn="ReviewStartDate1" />
			<Column Description="BatchNumber2" MaxRange="1" MinRange="0" Name="BatchNumber2" SQLDataType="12" SourceColumn="BatchNumber2" /> 
			<Column Description="VersionCode2" MaxRange="1" MinRange="0" Name="VersionCode2" SQLDataType="3" SourceColumn="VersionCode2" /> 
			<Column Description="MaterialType2" MaxRange="1" MinRange="0" Name="MaterialType2" SQLDataType="12" SourceColumn="MaterialType2" /> 
			<Column Description="LotNumber2" MaxRange="1" MinRange="0" Name="LotNumber2" SQLDataType="4" SourceColumn="LotNumber2" /> 
			<Column Description="RRComplete2" MaxRange="1" MinRange="0" Name="RRComplete2" SQLDataType="-6" SourceColumn="RRComplete2" /> 
			<Column Description="ReviewerName2" MaxRange="1" MinRange="0" Name="ReviewerName2" SQLDataType="12" SourceColumn="ReviewerName2" /> 
			<Column Description="ReviewStartDate2" MaxRange="1" MinRange="0" Name="ReviewStartDate2" SQLDataType="93" SourceColumn="ReviewStartDate2" />
		</Columns>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2> 
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2> 
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2> 
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2> 
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
			<ReviewerName2>Ankit</ReviewerName2>  
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2>  
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
			<ReviewerName2>Ankit</ReviewerName2> 
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2> 
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2> 
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2>  
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2> 
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2> 
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	<Row>
		<BatchNumber>A12345</BatchNumber> 
		<VersionCode>1</VersionCode> 
		<MaterialType>Raw</MaterialType> 
		<LotNumber>12345</LotNumber> 
		<RRComplete>0</RRComplete> 
		<ReviewerName>Ankit</ReviewerName> 
		<ReviewStartDate>2011-02-08T00:00:00</ReviewStartDate> 
		<BatchNumber1>A12345</BatchNumber1> 
		<VersionCode1>1</VersionCode1> 
		<MaterialType1>Raw</MaterialType1> 
		<LotNumber1>12345</LotNumber1> 
		<RRComplete1>0</RRComplete1> 
		<ReviewerName1>Ankit</ReviewerName1> 
		<ReviewStartDate1>2011-02-08T00:00:00</ReviewStartDate1> 
		<BatchNumber2>A12345</BatchNumber2> 
		<VersionCode2>1</VersionCode2> 
		<MaterialType2>Raw</MaterialType2> 
		<LotNumber2>12345</LotNumber2> 
		<RRComplete2>0</RRComplete2> 
		<ReviewerName2>Ankit</ReviewerName2> 
		<ReviewStartDate2>2011-02-08T00:00:00</ReviewStartDate2> 
	</Row>
	
	</Rowset>
</Rowsets>

and i have one more xml

<?xml version="1.0" encoding="UTF-8"?>
<columns>
	<column>
		<name></name>
		<displayname></displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>100</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>VersionCode</name>
		<displayname>Version Code</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>200</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>right</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>MaterialType</name>
		<displayname>Material Type</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>100</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>LotNumber</name>
		<displayname>Lot Number</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>60</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>RRComplete</name>
		<displayname>RR Complete</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>90</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>			
		</attributes>
	</column>
	<column>
		<name>ReviewerName</name>
		<displayname>Reviewer Name</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>80</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>ReviewStartDate</name>
		<displayname>Review StartDate</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>100</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>BatchNumber1</name>
		<displayname>Batch Number</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>100</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>VersionCode1</name>
		<displayname>Version Code</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>40</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>right</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>MaterialType1</name>
		<displayname>Material Type</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>10</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>LotNumber1</name>
		<displayname>Lot Number</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>60</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>RRComplete1</name>
		<displayname>RR Complete</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>90</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>			
		</attributes>
	</column>
	<column>
		<name>ReviewerName1</name>
		<displayname>Reviewer Name</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>80</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>ReviewStartDate1</name>
		<displayname>Review StartDate</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>20</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>BatchNumber2</name>
		<displayname>Batch Number</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>100</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>VersionCode2</name>
		<displayname>Version Code</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>40</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>right</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>MaterialType2</name>
		<displayname>Material Type</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>10</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>left</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>LotNumber2</name>
		<displayname>Lot Number</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>60</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>RRComplete2</name>
		<displayname>RR Complete</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>90</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>			
		</attributes>
	</column>
	<column>
		<name>ReviewerName2</name>
		<displayname>Reviewer Name</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>80</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	<column>
		<name>ReviewStartDate2</name>
		<displayname>Review StartDate</displayname>
		<attributes>
			<attribute>
				<name>width</name>
				<value>20</value>
			</attribute>
			<attribute>
				<name>text-align</name>
				<value>center</value>
			</attribute>
		</attributes>
	</column>
	
</columns>

and i have wrtten xn xslt fot his to generate a report

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="" exclude-result-prefixes="java">

<xsl:param name="FooterText">Footer Details for Example  Phone:123456789   Fax:12345 Mail to : abc@xyz.com</xsl:param>
<xsl:param name="ReportHeaderText">BATCH DETAILS REPORT</xsl:param>
<xsl:param name="ReportTitle">In Process Batch Details</xsl:param>
<xsl:param name="NumberOfRowsInPage">15</xsl:param>
<xsl:param name="CompanyLogo">report1.bmp</xsl:param>
<xsl:param name="CompanyNameImage">ABC_Company.gif</xsl:param>
<xsl:param name="HeaderFillerCnt" select="1"/>
<xsl:param name="MiddleFillerCnt" select="1"/>
<xsl:param name="FooterFillerCnt" select="1"/>
<xsl:param name="PortraitPageWidth" select="600"/>

<xsl:variable name="ConfigXML" select="document('ConfigXML.xml')"/>


<xsl:template match="/">
    <xsl:apply-templates select="Rowsets/Rowset"/>
</xsl:template>

<xsl:template match="Rowsets/Rowset">

<html>
<head>
<title><xsl:value-of select="$ReportTitle"/></title>
<style>
*{
    font: 8pt verdana;
}
body {
	background-color:#F6F7FB;
	display: block;
	page: Report;
	counter-reset: page 1
}
<!-- Sizing the page -->
@page { size: A4 landscape; } 

<!-- Conter to show line number while printing -->
@page main {
    @top { content: string(chapter-title) }
    @bottom {
        content: "Page " counter(page) " of " counter(pages)
    }
}
chapter title { string-set: chapter-title content() }

table { empty-cells: show; border-spacing: 0px; margin: 0px; padding: 0px;  align:center}
	.pagebreak {page-break-after: always;}
	.tableReportHeader{border-top: solid #4A6ACC 1px; border-left: solid #4A6ACC 1px; border-right: solid #4A6ACC 1px; width: 645px;}
	.tabledetails{border-left: solid #4A6ACC 1px; border-right: solid #4A6ACC 1px;  width: 645px; }
	.tableReportFooter{bottom: 2px;border-bottom: solid #4A6ACC 1px; border-left: solid #4A6ACC 1px; border-right: solid #4A6ACC 1px;  width: 645px;}
	.imglogo{border-style: none; vertical-align: top; border-color: #F6F7FB;}
	td{vertical-align: top; font-family: Arial, Helvetica, sans-serif; font-size: 9pt}
	.tdmargin{width:10px;}
	.documentheader{font-family:Arial; font-size:9pt; color:#4A6ACC; font-weight:bold;}
	th{font-family:Arial; font-size:8pt; color:white; background-color: #4A6ACC; text-align:center;border: solid 1px darkblue;}
	.tdorderHeader{border: solid 1px #4A6ACC;}
	.blueline{border-bottom: solid #4A6ACC 1px;}
	.documenttotal{font-family:Arial; font-size:9pt; color:#4A6ACC; font-weight:bold;border-bottom: solid #4A6ACC 1px;}
	.tdtotalmargin{width:450px;}
</style>

</head>

<body>
	<!--<xsl:value-of select="count($ConfigXML//name)"/>
	<xsl:for-each select="$ConfigXML//name">
		<xsl:value-of select="."/><xsl:value-of select="translate(' ', ' ', '&#160;')"/>
	</xsl:for-each>-->

	<xsl:copy-of select="$ReportHeader"/> <!-- Company Logo, Name -->

	<xsl:call-template name="Filler">
		<xsl:with-param name="fillercount" select="$HeaderFillerCnt" />
	</xsl:call-template>

	<xsl:copy-of select="$middleSection"/> <!-- Section to specify Additional Details -->

	<xsl:call-template name="Filler">
		<xsl:with-param name="fillercount" select="$MiddleFillerCnt" />
	</xsl:call-template>

	<xsl:copy-of select="$ContentRowsHeader"/>

	<xsl:for-each select="//Row">
		<table class="tabledetails" cellspacing="0" style="table-layout:fixed">
			<tr>
				<xsl:for-each select="*">
					<td width="70px" class="blueline"><xsl:value-of select="."/></td>
				</xsl:for-each>
			</tr>
		</table>
		
		<xsl:if test="(position() mod $NumberOfRowsInPage) = 0 or (not((position() mod $NumberOfRowsInPage) = 0) and position()=last())">
			<xsl:call-template name="Filler">
					<xsl:with-param name="fillercount" select="$FooterFillerCnt" />
				</xsl:call-template>

				<xsl:copy-of select="$ReportFooter" />
		</xsl:if>

		<xsl:if test="(position() mod $NumberOfRowsInPage) = 0 ">
			<br class="pagebreak" />
			
			<xsl:if test="not(position()=last())">
				<xsl:copy-of select="$ReportHeader" />

				<xsl:call-template name="Filler">
					<xsl:with-param name="fillercount" select="$HeaderFillerCnt" />
				</xsl:call-template>

				<xsl:copy-of select="$middleSection"/> <!-- Section to specify Additional Details -->

				<xsl:call-template name="Filler">
					<xsl:with-param name="fillercount" select="$MiddleFillerCnt" />
				</xsl:call-template>
				<xsl:copy-of select="$ContentRowsHeader"/>
			</xsl:if >
		</xsl:if>
	 </xsl:for-each>

</body>

</html>

</xsl:template>

<!-- ContentTableHeader -->
<xsl:variable name="ContentTableHeader">
	<table class="tabledetails" cellspacing="0" style="table-layout:fixed" border="2"><tr>
		<th colspan="2"><xsl:value-of select="$ReportTitle"/></th>		
	</tr></table>
</xsl:variable>


<!-- variable Miidle Section-->
<xsl:variable name="middleSection">
	<table class="tabledetails" cellspacing="0" style="table-layout:fixed"><tr>
		<td class="documentheader"  align="right">Batch #:</td>
		<td><xsl:value-of select="//Row/BatchNumber"/></td>
		<td class="documentheader" align="right">Reviewer Name:</td>
		<td><xsl:value-of select="//Row/ReviewerName" /></td>
	</tr></table>
</xsl:variable>


<!-- variable ReportHeader-->
<xsl:variable name="ReportHeader">
	<table class="tableReportHeader" cellspacing="0"><tr>
		<td><img class="imglogo"><xsl:attribute name="src"><xsl:value-of select="$CompanyLogo"/></xsl:attribute></img></td>
		<td><img ><xsl:attribute name="src"><xsl:value-of select="$CompanyNameImage"/></xsl:attribute></img></td>
		<td align="right"><h3 style="color:darkblue; font-family: Arial;"><xsl:value-of select="$ReportHeaderText"/></h3></td>
	</tr></table>
</xsl:variable>

<!-- Template Filler-->
<xsl:template name="Filler">
	<xsl:param name="fillercount"/>
	<xsl:if test="$fillercount > 0">
		<table class="tabledetails"><tr><td>
			<xsl:value-of select="translate(' ', ' ', '&#160;')"/>
		</td></tr></table>

		<xsl:call-template name="Filler">
			<xsl:with-param name="fillercount" select="$fillercount - 1"/>
		</xsl:call-template>
	</xsl:if>
</xsl:template>

<!-- variable ReportFooter-->
<xsl:variable name="ReportFooter">
	<table class="tableReportFooter">
		<tr><td style="width:20px;"></td>
			<td><table><tr><td style="font-size:8pt; text-align: justify;border-top: solid #4A6ACC 1px;">
				<xsl:value-of select="$FooterText"/>
			</td></tr></table></td>
		<td style="width:20px;"></td></tr>	
	</table>
</xsl:variable>

<!--variable ContentRowsHeader-->
<xsl:variable name="ContentRowsHeader">
	<table class="tabledetails" cellspacing="0" style="table-layout:fixed">
		<thead>
			<xsl:variable name="colWidthSum" select="count($ConfigXML/columns/column) div 2" />
		`	<xsl:for-each select="$ConfigXML//column">
				<!-- <xsl:variable name="sum" select="sum($ConfigXML/columns/column[position()&lt; $colWidthSum]/attributes/attribute[name='width']/value)"/>
				<xsl:if test="$sum &gt; $PortraitPageWidth and $ConfigXML/columns/column[position()=$colWidthSum]">
					<br class="pagebreak" />
				</xsl:if>-->
				<!--<xsl:call-template name="calcColWidthSum">
					<xsl:with-param name="sumValue">0</xsl:with-param>
					<xsl:with-param name="nextPosition">0</xsl:with-param>
				</xsl:call-template>-->
				<xsl:variable name="colName" select="name"/>
				<th>
					<xsl:for-each select="$ConfigXML//column[name=$colName]/attributes/attribute">
						<xsl:variable name="attrName" select="name"/>
						<xsl:attribute name="{$attrName}">
							<xsl:value-of select="value" />
						</xsl:attribute>
					</xsl:for-each>
					<xsl:choose>
						<xsl:when test="not(string(displayname)='')">
							<xsl:value-of select="displayname"/>
						</xsl:when>
						<xsl:when test="(string(displayname)='') and not(string(name)='')">
							<xsl:value-of select="name"/>
						</xsl:when>
						<xsl:otherwise>
						<!--	Not Defined -->
							
						</xsl:otherwise>
					</xsl:choose>
				</th>
			</xsl:for-each>
		</thead>
	</table>
</xsl:variable>


<!--<xsl:template name="calcColWidthSum">
	<xsl:param name="sumValue"/>
	<xsl:param name="nextPosition"/>
	
	<xsl:choose>
		<xsl:when test="$sumValue &lt;= $PortraitPageWidth">
			<xsl:variable name="nextPos" select="$nextPosition + 1"/>
			<xsl:variable name="sum" select="sum($ConfigXML/columns/column[$nextPosition]/attributes/attribute[name='width']/value)"/>
			$nextPosition = <xsl:value-of select="$nextPosition"/>
			$sumValue = <xsl:value-of select="$sumValue"/>
			<xsl:call-template name="calcColWidthSum">
				<xsl:with-param name="sumValue" select="$sum"/>
				<xsl:with-param name="nextPosition" select="$nextPos"/>
			</xsl:call-template>
		</xsl:when>
		<xsl:otherwise>			
			<xsl:variable name="pos" select="$nextPosition - 1"/>
			calcColWidhtSum = <xsl:value-of select="sum($ConfigXML/columns/column[$pos]/attributes/attribute[name='width']/value)"/>
		</xsl:otherwise>
	</xsl:choose>
</xsl:template>
-->

</xsl:stylesheet>

The first xml is the data xml and secon xml is for configration.
now when i loop throught the second xml and when the width is greter then 600 px i need to put the columns in the next page.
I know we need to do recursive call for getting sum but i am not able to do that.
If see the output there are columns which will exceed the screen width , i need to place those columns in the next page.

xml_looser 3 Junior Poster

it hard for me to understand your xsl
I do not much there that my spelling and punctuation of my imagination

does that mean I do not understand it and I'm not wasting my free time


I have an example there are data inside the summed
and if the ceiling is constructed, a new page appears

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.