【问题标题】:iReport - Place border around entire group in columniReport - 在列中的整个组周围放置边框
【发布时间】:2012-12-12 00:05:31
【问题描述】:

我正在使用 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 字段,使其看起来像上面的示例,也就是说,它看起来像一个动态扩展的字段,涵盖 N 行。如果我在报表的详细信息带中围绕上下文放置一个边框,那么我会在表格中获得永久行的边框,从而导致上下文列中有许多空单元格。使用 iReport 3.7.6 可以进行这种格式设置吗?是否可以在“上下文”字段上进行分组并以某种方式在整个组周围放置边框?

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

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

【问题讨论】:

    标签: jasper-reports border grouping ireport


    【解决方案1】:

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

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

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

    然后在组的详细信息带中,放置另一个空的透明静态文本,以覆盖整个详细信息带,这次只指定左右边框。

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

    【讨论】:

    • 感谢您的快速回复。我已经用表格的 ASCII 版本编辑了原始帖子以供参考,因为您无法查看图像模型。如果我理解您的建议,那么每个 Context 都将是一个标题,而不是表中的列。如果涉及到它,那么它会起作用,但我很想知道如何像模型和 ASCII 表一样格式化表格,以扩展我的 Jasper 技能。
    • 如果我理解正确,您实际上并没有对数据进行分组,而是将所有内容放在详细信息带中,然后将上下文的`打印重复值`设置为 false,这样它就不会在所有行中打印.在那种情况下,你仍然可以使用我的主要思想。将静态文本放在后面或仅使用左右边框设置上下文文本字段本身的样式,然后在列标题中放置带边框底部的静态文本。然后在列页脚的顶部加边框。
    • 感谢您的帮助。我用了你的建议,它奏效了。我确实必须在“上下文”字段上进行分组,所以我可以使用组计数变量有条件地在每个新上下文(每个组中的第一条记录)上方显示一个边框。
    • 嗨..@barneskd..我和你有同样的问题..但我无法正确获取边框..你能在这里评论..你最后做了什么?谢谢
    • 当我们在细节带中使用 isStretchWithOverflow falg true 时,它​​不起作用:(
    猜你喜欢
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多