我正在使用JasperReports 4.7.1创建每页 2 列的报告。
当属于一个组的记录跨越多个列时,我不仅要在组的开头打印标题,还要在每列的开头打印标题。
使用组属性中的Reprint Header(isReprintHeaderOnEachPage属性),可以在每页的开头打印标题。但是我仍然找不到在新专栏开始时做同样的事情的方法。
我怎样才能做到这一点?
当前报告页面的屏幕截图...
我想要实现的目标(注意第二列中的标题)......
我正在使用JasperReports 4.7.1创建每页 2 列的报告。
当属于一个组的记录跨越多个列时,我不仅要在组的开头打印标题,还要在每列的开头打印标题。
使用组属性中的Reprint Header(isReprintHeaderOnEachPage属性),可以在每页的开头打印标题。但是我仍然找不到在新专栏开始时做同样的事情的方法。
我怎样才能做到这一点?
当前报告页面的屏幕截图...
我想要实现的目标(注意第二列中的标题)......
我遇到了与您类似的问题,我设法通过添加 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>