我使用下面的线来获得动态行高,即高度应该与左列匹配。 但我还需要将行分成不同的单元格?当我使用简单的fo:block-cell attrbutes时,我没有得到动态的行高。如何实现动态行高和细胞?
public StudentBean findByName(java.lang.String studentName) {
Query query = em.createNamedQuery("findByName");
query.setParameter(1, studentName);
try {
return (StudentBean) query.getSingleResult();
} catch (NoResultException e){
return null;
}
}
更新 -
我认为可以做到的一种方法是在每个单元格值之后插入一条垂直线。这样,但不管怎样,垂直线都没有打印。
<fo:table-row display-align="center">
<xsl:for-each select="xalan:distinct(Number)">
<fo:table-cell block-progression-dimension="auto" >
<fo:block-container height="10mm">
<fo:block font-size="9pt" border-right-width="0.1mm" border-right-style="solid" border-right-color="red" >
<xsl:value-of select="">
<xsl:variable name="">
<xsl:value-of select="">
</xsl:variable>
<xsl:if test="">
<xsl:value-of select=""/>
</xsl:if>
</fo:block>
</fo:block-container>
</fo:table-cell>
垂直线插入是否有任何遗漏。
答案 0 :(得分:1)
如果将边框和填充属性移动到fo:table-cell
,边框将是单元格的完整高度:
<fo:table-cell border-right="0.1mm solid red">
答案 1 :(得分:0)
通过设置int count = 0;
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellType() != Cell.CELL_TYPE_BLANK) {
if (cell.getCellType() != Cell.CELL_TYPE_STRING ||
cell.getStringCellValue().trim().length() > 0) {
count++;
break;
}
}
}
}
,您可能会发现单元格中的文本可以溢出10毫米,但只有10毫米用于确定行高。如果删除fo:block-container/@height
,则应获得一个可变高度的表格行。
答案 2 :(得分:0)
新代码示例使事情更加清晰:您使用了2个嵌套表。 这是你不需要的另一个复杂因素。 只需使用1张桌子 在第一列中,将所有地理代码放入第一个单元格中。有多少并不重要:如果你有1个地理代码,那么单元格将是一行高。如果此单元格中有16个地理代码,则单元格将自动调整为3行高。
行的其余部分包含带有价格信息的单元格。在这些单元格上,定义右边框以生成红色垂直线。
<fo:table>
<fo:table-column column-width="..mm" column-number="1"/>
<fo:table-column column-width="..mm" column-number="2"/>
...you'll have to add some code here to add the correct number of columns to your table...
<fo:table-body>
<fo:table-row>
<fo:table-cell>
...place the code to insert the country codes here....
</fo:table-cell>
<xsl:for-each select="../../../rateDetails[toGeography/sequence = $currentSequence]">
<fo:table-cell block-progression-dimension="auto" border-right-width="0.1mm" border-right-style="solid" border-right-color="black" text-align="center">
<fo:block-container>
<fo:block font-size="9pt">
<xsl:call-template name="currencySymbol">
<xsl:with-param name="currencyCode" select="$currencyCode" />
</xsl:call-template>
<xsl:value-of select="util:formatCurrency(rate,$language,$countryCode)" />
</fo:block>
</fo:block-container>
</fo:table-cell>
</xsl:for-each>