iReport - 在列中围绕整个组放置边框

时间:2012-12-12 00:05:31

标签: jasper-reports border grouping ireport

我正在使用 iReport v3.7.6 JasperReports ,我有一个创建表的请求,其中第一列用于对显示的问题和答案进行分区/分类在表的其余部分。请求输出的示例:

enter image description here

编辑:对于那些无法查看图片的人来说,它是一个包含字段“上下文”,“问题”和“答案”的3列表格。每组问答都属于单个上下文,它作为集合的类别,上下文可以作为多组问答的类别。请求是它看起来像这样:

_________________________________
| Context1 | Question1 | Answer1 |
|          |___________|_________|
|          | Question2 | Answer2 |
|          |___________|_________|
|          | Question3 | Answer3 |
|          |___________|_________|
|          | Question4 | Answer4 |
|__________|___________|_________|
| Context2 | Question5 | Answer5 |
|          |___________|_________|
|          | Question6 | Answer6 |
|__________|___________|_________|

我知道我可以将 iReport 设置为不打印重复值,这解决了我在每行上不打印Context的问题,但问题的第二部分是放置一个单元格边框整个Context字段使它看起来像上面的例子,也就是说,它看起来像一个覆盖N行的动态扩展字段。如果我在Context的详细信息区域中放置了Context周围的边框,那么我将获得表中的任何行的边框,从而在Context列中生成许多空单元格。使用 iReport 3.7.6 可以进行这种格式化吗?是否可以在“上下文”字段中进行分组,并以某种方式在整个组周围放置边框?

由于每个上下文类别的问题数量是已知的,因此可以在我的数据集中使用标记并在Context字段周围有条件地设置样式(例如,对于组中的第一个记录,标记设置为“top”,对于最后一个记录,“last”设置为“last”在组和样式框架的边框,根据标志显示顶部或底部边框),但这似乎是处理问题的一种非常混乱的方式。另外,一旦问题被删除/添加,绷带就会破裂。

另一个想法是创建一个子报表,单独生成每个上下文,在整个子报表周围放置边框,并将结果组合在主报表的详细信息区域中,但这似乎是一个简单问题的复杂解决方案。

1 个答案:

答案 0 :(得分:3)

由于公司的过滤器,我无法看到您提供的图片。

您是否与分组数据的边界相关?如果是,您可以在整个组标题区域中放置一个静态文本作用域,然后仅指定顶部,左侧和右侧的边框,并将其发送到所有标题的后面。它应该发送回去(右键单击>发送到后面)

<staticText>
    <reportElement positionType="Float" mode="Transparent" x="0" y="1" width="814" height="11" forecolor="#000000" backcolor="#F0F0F0"/>
    <box>
        <topPen lineWidth="0.75" lineColor="#CCCCCC"/>
        <leftPen lineWidth="0.75" lineColor="#CCCCCC"/>
        <rightPen lineWidth="0.75" lineColor="#CCCCCC"/>
    </box>
    <text><![CDATA[]]></text>
</staticText>

然后在组的详细信息区域中,放置另一个空的透明静态文本,其范围是整个细节带,这次只指定左右边框。

在组页脚中,放置另一个空的透明静态文本,其范围是整个组页脚区域,仅指定顶部边框