У меня есть таблица HTML, которая варьируется в зависимости от ее содержимого.1-3 столбца скрыть.Изменение названия 1 столбца.Все в зависимости от содержания.
Я создаю PDF-версию этой таблицы HTML.Версия PDF использует apache-FOP
с fop v1.0
.Вывод в формате PDF содержит 2 из вышеупомянутых таблиц на одной странице.Я не хочу создавать .xsl
для каждой комбинации возможностей.Это много дублирования и обслуживания.
Я могу решить изменение имени столбца, просто передав имя столбца вместе с содержимым XML.Но условная видимость столбцов представляется гораздо более сложной задачей.
Как настроить условную видимость?Возможно ли это?
Я с трудом заставляю <fo:table-column visibility="collapse" />
работать.Данные по-прежнему отображаются с видимостью, скрытой или свернутой.display="none"
выглядело многообещающе.Но API не отображает его как действительное свойство для столбца таблицы.
Если я не могу условно скрыть столбец, мне нужно создать 18 уникальных xsl
файлов ...
В настоящее время мои таблицы очень простые.Я делаю
<fo:block font-size="10pt">
<fo:table table-layout="fixed" width="100%" border-collapse="separate">
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column visibility="collapse" />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-header>
<fo:table-cell border-width="0.2mm" border-style="solid">
<fo:block>Header 1</fo:block>
</fo:table-cell>
//...9 other headers (these should show/hide as needed)
</fo:table-header>
<fo:table-body>
<xsl:for-each select="Object/type/SomeItem/ProcedureItemCollection">
<fo:table-row>
<fo:table-cell border-width="0.2mm" border-style="solid" >
<fo:block>
<xsl:value-of select="content1"/>
</fo:block>
</fo:table-cell>
//...9 other cells...
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:block>
XML
<Procedure>
<SiteName>Site1</SiteName>//If Site1, don't create column 2
//If Site2, don't create column 2,3,4
//If Site3, create all columns
<itemtype1>
<item><member1></member1><member2></member2></item>
<item><member1></member1><member2></member2></item>
</itemtype1>
<itemtype2>
<item><member1></member1><member2></member2></item>
<item><member1></member1><member2></member2></item>
</itemtype2>
</Procedure>
Делая это таким образом, у меня мало гибкости в создании таблицы.Но это все, что я умею делать.