3

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

在此处输入图像描述

编辑:对于那些无法查看图像的人,它是一个包含字段“上下文”、“问题”和“答案”的 3 列表。每组 Question 和 Answer 属于一个单独的 Context,它充当该集合的一个类别,而 Context 可以充当多个 Question 和 Answer 集合的一个类别。请求是它看起来像这样:

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

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

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

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

4

1 回答 1

4

由于我公司的过滤器,我看不到您提供的图像。

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

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

然后在该组的细节带中,放置另一个空的透明静态文本,它作用于整个细节带的范围,这次只指定左右边框。

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

于 2012-12-12T02:55:36.450 回答