2013-10-14 5 views
0

The ExampleApache FOP: удалить пустые столбцы таблицы

Я пытаюсь создать таблицу, в которой столбцы добавляются или удаляются динамически, depeindig пользовательского ввода. Проблема в том, что пустые столбцы все еще видны (см. Рисунок)

Мой текущий подход использует xsl: if. (См фрагмента коды)

<fo:table table-layout="fixed" width="100%" font-family="Helvetica" font-size="12pt"> 
         <fo:table-body start-indent="5pt"> 
          <fo:table-row> 
           <fo:table-cell> 
            <fo:block> 
            <xsl:if test="boolean(./targetAgreements/targetAgreement/area/@visible = 'true')"> 
             Area 
             </xsl:if> 
            </fo:block> 
           </fo:table-cell> 
           <fo:table-cell> 
            <fo:block> 
            <xsl:if test="boolean(./targetAgreements/targetAgreement/brand/@visible = 'true')"> 
             Brand 
             </xsl:if> 
            </fo:block> 
           </fo:table-cell> 
           <fo:table-cell> 
            <fo:block> 
            <xsl:if test="boolean(./targetAgreements/targetAgreement/currentTarget/@visible = 'true')"> 
             Current Target 
             </xsl:if> 
            </fo:block> 
           </fo:table-cell> 
           <fo:table-cell> 
... 

Если я пытаюсь окружить таблицу-ячейку с XSL: если он говорит мне, что таблицы строки требуют, по меньшей мере, одну таблицы-элемента в качестве дочернего элемента.

Как полностью удалить пустые столбцы?

Спасибо!

ответ

0

я сделал какой-то обходной путь ...

Первая таблица-клетка всегда есть (без XSL: если). Следующие ячейки окружены xsl: if.

Смотрите пример:

<fo:table table-layout="fixed" width="100%" font-family="Helvetica" font-size="12pt"> 
     <fo:table-header > 
      <fo:table-row font-weight="bold" background-color="rgb(133,133,133)"> 
       <fo:table-cell> 
        <fo:block> 
         <xsl:value-of select="./headlines/headline[1]" /> 
        </fo:block> 
       </fo:table-cell> 
       <xsl:if test="boolean(./targetAgreements/targetAgreement/brand/@visible = 'true')"> 
        <fo:table-cell> 
         <fo:block> 
          <xsl:value-of select="./headlines/headline[2]" /> 
         </fo:block> 
        </fo:table-cell> 
       </xsl:if> 
       <xsl:if test="boolean(./targetAgreements/targetAgreement/currentTarget/@visible = 'true')"> 
        <fo:table-cell> 
         <fo:block> 
          <xsl:value-of select="./headlines/headline[3]" /> 
         </fo:block> 
        </fo:table-cell> 
       </xsl:if> 
... 
Смежные вопросы