在iReport / JasperReports 3.6.1中重复值的问题

时间:2012-02-19 23:22:22

标签: java jasper-reports ireport

我正在使用iReport来格式化查询结果。结果目前是这样的:

Id   firstname surname  -  id    firstname  surname
1      dan      n          45      dan        n
1      dan      n          46      dan        n
3      john     d          102     john       d
4      john     f          109     john       f
4      john     f          110     john       f

我希望他们看起来更像这样:

Id   firstname surname  -  id    firstname  surname
1      dan      n          45      dan        n
                           46      dan        n
3      john     d          102     john       d
4      john     f          109     john       f
                           110     john       f

我知道iReport具有'重复值时打印功能,但是如果我使用它,我会发生以下情况:

Id   firstname surname  -  id    firstname  surname
1      dan      n          45      dan        n
                           46      dan        n
3      john     d          102     john       d
4               f          109     john       f
                           110     john       f

因为iReports将第二个John视为重复,所以将其删除。

所以我的问题是,有没有办法做到这一点?我无法找到一种方法来对元素进行分组,然后不在id字段上重复。我试着跟踪最后2个id,然后打印当前是否与最后一个匹配,但是无法弄清楚如何让它每次更新以便跟踪。

有没有人有任何想法?

我正在使用ireport(和jasperreports)3.6.1并且知道要做出一个将返回我需要的查询但是宁愿在报告端完成格式化。

1 个答案:

答案 0 :(得分:2)

在名为MyGroup的$F{Id}上创建一个群组。不要创建组页眉或组页脚。 [此时,您的报告仍然与您的第一个版本完全一样。]

然后在每个字段中添加Print When Expression:Id,firstname,surname。表达式应如下所示:

new Boolean($V{MyGroup_COUNT}.intValue()==1)

那就是你按照身份证打印一次字段。