如何在列标题,页脚和细节部分周围绘制边框?

时间:2011-08-25 15:40:02

标签: jasper-reports

我要求有一个边框,用于封装JasperReports + iReport中生成的报告中的所有细节+列标题。但是,如果我尝试在列标题,详细信息和列页脚中绘制一个矩形或一个框架,我会收到错误消息,说明元素位置无效。

我想一个选项是使用图像(就像没有CSS的好旧HTML时间......)但它会是一个PITA,因为如果字段溢出或有人改变一个部分的高度或宽度,图像必须改变......

还有其他选择吗?

感谢。

4 个答案:

答案 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>

结果应如下所示: Screenshot from iReport

答案 1 :(得分:0)

您可以使用为此目的绘制矩形的背景带。

答案 2 :(得分:0)

使用带有Frame或Rectangle的背景乐队似乎效果最好,但是,如果第一页和后续页面具有不同的Header Elements,则调整Frame / Rectangle可能有点棘手。

这样做的一种方法是在任何标题,页眉和页脚带上添加一个框架/矩形, 这是不透明/白色并发送到后面。这将模糊背景图像。

这意味着它只会显示细节带,因此页眉和页脚框架可能需要底部/顶部边框,具体取决于您的需要。

(我发现使用带有侧边框的细节带中的框架的问题并不完全有效,因为有时重复的细节带不会填满每个页面,因此间隙留在边框的边界处)< / p>

答案 3 :(得分:0)

  1. 点击您的碧玉报告。
  2. 转到基本元素。
  3. 选择矩形。