当记录分为2页时,如何避免丢失单元格的边框?

时间:2012-01-15 14:36:03

标签: jasper-reports report ireport

当页面中的最后一个条目太长时,它会在下一页显示,当它显示所有表格行都缺失时。

结果如下:

enter image description here

如何将最后一条记录(第26条)移至下一页,或如何显示该行?

2 个答案:

答案 0 :(得分:6)

您可以将staticText元素放在textField元素后面。您应该使用 RelativeToTallestObject 值和 stretchType <设置 isPrintWhenDetailOverflows 属性/ strong>属性 true 值。

样本:

<detail>
    <band height="20" splitType="Stretch">
        <staticText>
            <reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
            <box>
                <leftPen lineWidth="1.0"/>
                <bottomPen lineWidth="1.0"/>
                <rightPen lineWidth="1.0"/>
            </box>
            <textElement/>
            <text><![CDATA[]]></text>
        </staticText>
        <textField>
            <reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="100" height="20"/>
            <box>
                <leftPen lineWidth="1.0"/>
                <bottomPen lineWidth="1.0"/>
                <rightPen lineWidth="1.0"/>
            </box>
            <textElement/>
            <textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
        </textField>

结果,您将在第二页获得垂直边框。

The text from resulting PDF file with vertical border after using the staticText

结果之前添加第二个staticText是(第二页的垂直边框不存在):

The text from resulting PDF file without vertical border before using the staticText

答案 1 :(得分:4)

更好的方法是确保通过设置在下一页上生成详细信息带(或任何波段)中的新项目,但不在文本字段上生成。对于文本字段所在的波段,您可以将“分割类型”设置为“预防”。如果你在Detail Band上设置它并且该行需要溢出到下一页,它会将整行移动到下一页。