xsl-list
[Top] [All Lists]

help for number-rows-spanned

2006-01-23 14:36:10
I have a problem generating an table with the
number-rows-spanned attribute, what I want to see is
the following:

C1       |c2       |c3       |c4       |c5       |c6
-------- |-------- |-------- |-------- |--------
|---------
Key      |data2    |data3    |data4    |data5   
|data6
         |-------- |-------- |-------- |--------
|---------
         |subject:           |data4    |data5   
|data6
         |subject test to be |-------- |--------
|---------
         |wrapped here when  |data4    |data5   
|data6
         |too long           |-------- |--------
|---------
         |                   |data4    |data5   
|data6
-------- |-------- |-------- |-------- |--------
|---------

So I used number-rows-spanned to do this, the problem
is that both key field and subject field are trucated
to show only one line, the rests are not showing, does
anybody have any idea how this happends?

Here is my code:

xml:
    <record>
      <key>Key</key>
      <subject>Subject to be wrapped</subject>
      <data2>data2</data2>
      <data3>data3</data3>
      <data4>data4.1</data4>
      <data5>data5.1</data5>
      <data6>data6.1</data6>
      <data_count>3</data_count>

      <data4_1>data4.2</data4_1>
      <data5_1>data5.2</data5_1>
      <data6_1>data6.2</data6_1>
      <more_data>
        <data_set>
          <data4>data4.3</data4>
          <data5>data5.3</data5>
          <data6>data6.3</data6>        
        </data_set>
        <data_set>
          <data4>data4.4</data4>
          <data5>data5.4</data5>
          <data6>data6.4</data6>        
        </data_set>
      </more_data>
    </record>

xsl:
  <xsl:template match="record">
  
    <xsl:variable name="data_count">
      <xsl:value-of select="data_count"/>
    </xsl:variable>
        
    <xsl:variable name="subject_colspan">
      <xsl:choose>
        <xsl:when test="$data_count = 0">
           <xsl:value-of select="5"/>
        </xsl:when>
        <xsl:otherwise>
           <xsl:value-of select="2"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>    

    <xsl:variable name="subject_rowspan">
      <xsl:choose>
        <xsl:when test="$data_count &lt; 2">
           <xsl:value-of select="1"/>
        </xsl:when>
        <xsl:otherwise>
           <xsl:value-of select="$data_count"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <fo:table-row background-color="#F0F0FF"
border="0.5pt solid black">
      <fo:table-cell
number-rows-spanned="{($subject_rowspan)+1}"
text-align="left"  border-width=".1mm"
border-style="solid" border-color="black"
padding="2pt" padding-left="2pt" padding-right="2pt"> 
    
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible" hyphenate="true" language="en">
          <xsl:value-of select="key"/>
        </fo:block>
      </fo:table-cell>
      
      <fo:table-cell text-align="left" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible" hyphenate="true" language="en">
          <xsl:value-of select="data2"/>
        </fo:block>
      </fo:table-cell>
      
      <fo:table-cell text-align="left" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="data3"/>
        </fo:block>
      </fo:table-cell>
      
      <fo:table-cell text-align="left" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="data4"/>
        </fo:block>
      </fo:table-cell>

      <fo:table-cell text-align="left" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="data5"/>
        </fo:block>
      </fo:table-cell>

      <fo:table-cell text-align="left" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="data6"/>
        </fo:block>
      </fo:table-cell>   
    </fo:table-row>
    
    <fo:table-row background-color="#F0F0FF">
      <fo:table-cell text-align="left"
border-collapse="separate"
number-columns-spanned="{$subject_colspan}"
number-rows-spanned="{$subject_rowspan}" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" font-weight="bold"
line-height="1.2" overflow="visible"  hyphenate="true"
language="en">Subject: </fo:block>
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="subject"/>
        </fo:block>
      </fo:table-cell>
      
      <xsl:if test="$data_count &gt; 0">
      <fo:table-cell text-align="left" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="data4_1"/> 
        </fo:block>
      </fo:table-cell>

      <fo:table-cell text-align="left" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="data5_1"/>
        </fo:block>
      </fo:table-cell>

      <fo:table-cell text-align="left" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="data6_1"/>
        </fo:block>
      </fo:table-cell>    
      </xsl:if>
    </fo:table-row>
    
      <xsl:apply-templates select="more_data"/>
    
  </xsl:template>
  
  <xsl:template match="more_data">
  <xsl:apply-templates/>
  </xsl:template>
  
  <xsl:template match="data_set">
    <fo:table-row background-color="#F0F0FF">
      <fo:table-cell starts-row="false"
text-align="left"  border-width=".1mm"
border-style="solid" border-color="black"
padding="2pt" padding-left="2pt" padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="data4"/> 
        </fo:block>
      </fo:table-cell>

      <fo:table-cell text-align="left" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="data5"/>
        </fo:block>
      </fo:table-cell>

      <fo:table-cell text-align="left" 
border-width=".1mm" border-style="solid"
border-color="black" padding="2pt" padding-left="2pt"
padding-right="2pt">
        <fo:block font-size="9pt" line-height="1.2"
overflow="visible"  hyphenate="true" language="en">
          <xsl:value-of select="data6"/>
        </fo:block>
      </fo:table-cell>    
    </fo:table-row>
  </xsl:template>



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>
  • help for number-rows-spanned, ying xing <=