1

我正在使用JasperReports 4.7.1创建每页 2 列的报告。

当属于一个组的记录跨越多个列时,我不仅要在组的开头打印标题,还要在每列的开头打印标题。

使用组属性中的Reprint HeaderisReprintHeaderOnEachPage属性),可以在每页的开头打印标题。但是我仍然找不到在新专栏开始时做同样的事情的方法。

我怎样才能做到这一点?

当前报告页面的屏幕截图...

在此处输入图像描述

我想要实现的目标(注意第二列中的标题)......

在此处输入图像描述

4

1 回答 1

1

我遇到了与您类似的问题,我设法通过添加 ColumnHeader 带并仅在我的 2 列报告的第 2 列中显示它来解决它。

将 isReprintHeaderOnEachPage 设置为 true 并且 groupHeader 和 columnHeader 的高度必须相同,这样我的解决方案才能正常工作,这一点很重要。

这是相关代码(当然,您将“电话号码”替换为适当的组表达式:

<group name="telephoneNumberGroup" isStartNewPage="true" isReprintHeaderOnEachPage="true">
    <groupExpression><![CDATA[$F{telephoneNumber}]]></groupExpression>
    <groupHeader>
        <band height="17">
            <textField>
                <reportElement positionType="Float" x="5" y="0" width="170" height="15" uuid="5e8b892b-f907-4907-9c6d-4419e57325e5"/>
                <textElement verticalAlignment="Middle">
                    <font fontName="Arial" size="6" isBold="true"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{telephoneNumber}]]></textFieldExpression>
            </textField>
        </band>
    </groupHeader>
</group>
<columnHeader>
    <band height="17">
        <printWhenExpression><![CDATA[$V{COLUMN_NUMBER} == 2]]></printWhenExpression>
        <textField>
            <reportElement positionType="Float" x="5" y="0" width="170" height="15" uuid="5e8b892b-f907-4907-9c6d-4419e57325e5"/>
            <textElement verticalAlignment="Middle">
                <font fontName="Arial" size="6" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{telephoneNumber}]]></textFieldExpression>
        </textField>
    </band>
</columnHeader>
于 2014-09-05T11:40:27.613 回答