Jasper reports 如何在列页眉、页脚和详图部分周围绘制边框?

Jasper reports 如何在列页眉、页脚和详图部分周围绘制边框?,jasper-reports,Jasper Reports,我需要有一个边框来封装JasperReports+iReport中报告的所有细节和列标题。但是,如果我试图绘制一个矩形或一个框架,它同时出现在列标题、详细信息和列页脚中,我会得到一个错误,指出元素位置无效 我想一个选择是使用图像(就像没有CSS的HTML时代一样…),但这将是一个PITA,因为如果字段溢出,或者如果有人更改某个部分的高度或宽度,图像将不得不更改 还有其他选择吗 谢谢。要做到这一点,您可以将框架放入每个带中,设置其大小以完全填充带。然后在帧上设置边框,以在所有三个带区周围复制边框,

我需要有一个边框来封装JasperReports+iReport中报告的所有细节和列标题。但是,如果我试图绘制一个矩形或一个框架,它同时出现在列标题、详细信息和列页脚中,我会得到一个错误,指出元素位置无效

我想一个选择是使用图像(就像没有CSS的HTML时代一样…),但这将是一个PITA,因为如果字段溢出,或者如果有人更改某个部分的高度或宽度,图像将不得不更改

还有其他选择吗


谢谢。

要做到这一点,您可以将框架放入每个带中,设置其大小以完全填充带。然后在帧上设置边框,以在所有三个带区周围复制边框,因此标题在顶部、左侧和右侧都有边框;页脚有底部、左侧和右侧;细节标注栏仅在左侧和右侧有边框。请参见下面的示例代码

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

结果应该如下所示:

您可以使用背景条带,在其上绘制矩形用于此目的。

使用带有边框或矩形的背景条带似乎效果最好,不过,如果第一页和后续页具有不同的标题元素,调整边框/矩形的大小可能会有点棘手

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

这意味着它将只显示在细节栏中,因此页眉和页脚框架可能需要一个底部/顶部边框,具体取决于您想要的内容

(我发现在仅带有侧边边框的细节栏中使用框架的问题并不十分有效,因为有时重复的细节栏无法填充每页,因此在侧边的边框中留下了间隙)

  • 点击你的jasper报告
  • 转到基本元素
  • 选择矩形

  • 还应该使用
    isFloatColumnFooter
    ,否则,细节和列页脚之间会有间隙<代码>