【发布时间】:2018-05-09 11:34:09
【问题描述】:
如果表格扩展到下一页,则不显示表格页脚。
继续文本应该出现在第一页表格的末尾。类似于正确出现的表格标题。每当表格扩展到下一页时,“cont”应该出现在第一页的末尾。
示例 XML:
<NewDataSet>
<DefaultView>
<Department>2222</Department>
<Title>Manish</Title>
</DefaultView>
<DefaultView>
<Department>2223</Department>
<Title>Santosh</Title>
</DefaultView>
<DefaultView>
<Department>2224</Department>
<Title>Naveen</Title>
</DefaultView>
<DefaultView>
<Department>2225</Department>
<Title>punith</Title>
</DefaultView>
<DefaultView>
<Department>2226</Department>
<Title>bharath</Title>
</DefaultView>
<DefaultView>
<Department>2227</Department>
<Title>vijay</Title>
</DefaultView>
</NewDataSet>
XSL 示例:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:rx="http://www.renderx.com/XSL/Extensions"
xmlns:psmi="http://www.CraneSoftwrights.com/resources/psmi"
xmlns:exsl="http://exslt.org/common">
<xsl:template match='NewDataSet'>
<fo:root>
<fo:layout-master-set>
<fo:simple-page-master master-name="my-page">
<fo:region-body margin="1in"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="my-page">
<fo:flow flow-name="xsl-region-body">
<fo:table>
<fo:table-column column-width="25mm"/>
<fo:table-column column-width="25mm"/>
<fo:table-header keep-together="always">
<fo:block text-align="center" font-style="italic" margin="5pt" keep-together="always">
<xsl:text>Table</xsl:text>
</fo:block>
</fo:table-header>
</fo:table>
<fo:table-and-caption>
<fo:table rx:table-omit-initial-header="true">
<fo:table-column column-width="25mm"/>
<fo:table-column column-width="25mm"/>
<fo:table-header keep-together="always">
<fo:block text-align="center" font-style="italic" margin="5pt" keep-together="always">
<xsl:text>Table (Cont.)</xsl:text>
</fo:block>
</fo:table-header>
<fo:table-header >
<fo:table-row>
<fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" align="left">
<fo:block font-weight="bold">Dept</fo:block>
</fo:table-cell >
<fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" align="left">
<fo:block font-weight="bold">Title</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>
<xsl:for-each select="*">
<fo:table-body>
<fo:table-row>
<fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" align="left">
<fo:block>
<xsl:value-of select="Department"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" align="left">
<fo:block>
<xsl:value-of select="Title"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</xsl:for-each>
</fo:table>
</fo:table-and-caption>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
【问题讨论】:
-
您的示例 XSLT 中没有
fo:table-footer。 (另外,如果你把fo:table-body放在xsl:for-each之外,你只会生成一个fo:table-body,而你真的只需要一个。) -
注意:与省略表格的开始页眉不同,省略最后一个页脚并不等同。如果您的想法是有一个显示“表格在下一页继续”的页脚,您可以使用标记并拉入页脚区域并清除表格末尾的标记。
-
嗨,Kevin,您能否提供一些示例来清除表格页脚中的标记,以便我们做同样的事情。提前致谢。
-
请看答案,我给你加了cmets。您可以在表格后面看到它就像将标记设置为空元素一样简单。这将使其“空白”。因此,它不会将任何内容拉到页脚。您会重复围绕您的表格...将标记设置为连续文本,格式化表格,将标记设置为空。
-
对于下面的数据,页脚也出现在页面末尾。仅当表格内容扩展到下一页时,页脚才应出现。如果表格内容未扩展到下一页,则只有表格不应出现在该页面上的页脚内容。
2222 Manish 2223 Santosh