我要求有一个边框,用于封装JasperReports + iReport中生成的报告中的所有细节+列标题。但是,如果我尝试在列标题,详细信息和列页脚中绘制一个矩形或一个框架,我会收到错误消息,说明元素位置无效。
我想一个选项是使用图像(就像没有CSS的好旧HTML时间......)但它会是一个PITA,因为如果字段溢出或有人改变一个部分的高度或宽度,图像必须改变......
还有其他选择吗?
感谢。
答案 0 :(得分:10)
为此,您可以将帧放入每个波段,设置它们的大小以完全填充波段。然后在帧上设置边框以复制所有三个波段周围的边框,因此标题在顶部,左侧和右侧有一个边框;页脚有底部,左侧和右侧;并且细节带仅在左侧和右侧具有边框。请参阅下面的示例代码。
<columnHeader>
<band height="61" splitType="Stretch">
<frame>
<reportElement x="0" y="0" width="555" height="61"/>
<box>
<topPen lineWidth="2.0" lineStyle="Solid"/>
<leftPen lineWidth="2.0" lineStyle="Solid"/>
<rightPen lineWidth="2.0" lineStyle="Solid"/>
</box>
</frame>
</band>
</columnHeader>
<detail>
<band height="125" splitType="Stretch">
<frame>
<reportElement x="0" y="0" width="555" height="125"/>
<box>
<leftPen lineWidth="2.0" lineStyle="Solid"/>
<rightPen lineWidth="2.0" lineStyle="Solid"/>
</box>
</frame>
</band>
</detail>
<columnFooter>
<band height="45" splitType="Stretch">
<frame>
<reportElement x="0" y="0" width="555" height="45"/>
<box>
<leftPen lineWidth="2.0" lineStyle="Solid"/>
<bottomPen lineWidth="2.0" lineStyle="Solid"/>
<rightPen lineWidth="2.0" lineStyle="Solid"/>
</box>
</frame>
</band>
</columnFooter>
结果应如下所示:
答案 1 :(得分:0)
您可以使用为此目的绘制矩形的背景带。
答案 2 :(得分:0)
使用带有Frame或Rectangle的背景乐队似乎效果最好,但是,如果第一页和后续页面具有不同的Header Elements,则调整Frame / Rectangle可能有点棘手。
这样做的一种方法是在任何标题,页眉和页脚带上添加一个框架/矩形, 这是不透明/白色并发送到后面。这将模糊背景图像。
这意味着它只会显示细节带,因此页眉和页脚框架可能需要底部/顶部边框,具体取决于您的需要。
(我发现使用带有侧边框的细节带中的框架的问题并不完全有效,因为有时重复的细节带不会填满每个页面,因此间隙留在边框的边界处)< / p>
答案 3 :(得分:0)