我在JasperReports子报表中遇到了以下问题,过去几天我一直试图解决这个问题,但没有成功。下面是我正在尝试做的图片。
我的一份报告中的子报告相对简单。它有一个带有单个文本字段(图像中标记为棕色)的标题带,用于子报表标题和带有两个项目的详细信息带:一个子报表(图像中标记为蓝色)打印我的订单项和一个文本字段(标记为红色)图像)打印与打印在其左侧的行项目相关联的注释。订单项子报表可以打印可变数量的订单项(由bean集合支持的数据源)。我的客户要求是注释字段拉伸并显示输入的文本,但受行项目部分的高度限制(由图像上的箭头表示)。我不知何故需要阻止注释超出行项目并使它们具有相同的高度(图像中应该没有绿色框)。
有没有人有任何提示如何在JasperReports中实现(并且可以完全实现)?
P.S。 我们目前正在使用JR 3.6版编译我们的报告
答案 0 :(得分:7)
将子报表和文本字段放入框架中。对于文本字段,请将" Stretch with overflow" 设置为 false ,将" Stretch type" 设置为"相对于最高的对象"
文本字段将相对于其容器中的最高对象进行拉伸。它的容器现在是框架,因此最高的对象"只能是子报告。确定元素在定义时的高度相同,否则它们将以不同的速率增长。
JRXML示例:
<band height="50">
<frame>
<reportElement x="0" y="0" width="555" height="50"/>
<subreport>
<reportElement x="0" y="0" width="378" height="50"/>
...
</subreport>
<textField isStretchWithOverflow="false">
<reportElement stretchType="RelativeToTallestObject" x="378" y="0" width="177" height="50"/>
...
</textField>
</frame>
</band>