我建议您先查看这张图片,以使我更容易理解。
这是我当前得到的结果(第一个单元格包含一个大字符串):
我的方法和简短示例:
所以我有5个单元格,在一个单元格中,我会打印很长的字符串,而其他4个单元格则是跨度的。 在该跨单元格内,我创建了另一个表,因此可以使用非常长的字符串使数据内联(必须内联)。
由于该长标签的数据列表非常短,因此子表比该长标签小得多,因此,如上图所示,我缺少边框。
有人建议如何以非常长的标签内联方式打印出数据列表,而又不会丢失边框?
该部分的代码段:
<xsl:for-each select="services">
<xsl:variable name="servicePosition" select="position()"/>
<fo:table-row>
<fo:table-cell>
<fo:block keep-with-previous="always">
<xsl:value-of select="very-long-label"/>
</fo:block>
</fo:table-cell>
<fo:table-cell padding="none" number-columns-spanned="4">
<fo:table table-layout="fixed" width="100%">
<fo:table-column column-width="25%"/>
<fo:table-column column-width="25%" border-left="1px solid black"/>
<fo:table-column column-width="25%" border-left="1px solid black"/>
<fo:table-column column-width="25%" border-left="1px solid black"/>
<fo:table-body>
<xsl:for-each select="whole-previous-path/services[$servicePosition]">
<xsl:for-each select="fees">
<xsl:for-each select="value">
<fo:table-row text-align="right">
<fo:table-cell text-align="right">
<fo:block>
<xsl:value-of select="val1"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right">
<fo:block>
<xsl:value-of select="val2"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right">
<fo:block>
<xsl:value-of select="val3"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right">
<fo:block>
<xsl:value-of select="val4"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:table-cell>
</fo:table-row>