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

Java iReport/JasperReports 3.6.1中重复值的问题,java,jasper-reports,ireport,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

我正在使用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
new Boolean($V{MyGroup_COUNT}.intValue()==1)
我希望它们看起来更像这样:

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
new Boolean($V{MyGroup_COUNT}.intValue()==1)
我知道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字段上不重复。我试着跟踪最后两个id,然后打印当前id是否与最后一个匹配,但一直没有弄清楚如何让它每次更新,以便跟踪

有人有什么想法吗


我正在使用ireport(和jasperreports)3.6.1,我知道要进行一个查询,该查询将返回我所需要的内容,但我更希望在报表端进行格式化。

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

然后在每个字段中添加一个Print-When表达式:Id、firstname、姓氏。表达式应如下所示:

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
new Boolean($V{MyGroup_COUNT}.intValue()==1)

这样,您就可以按ID打印字段一次。

您好,这不太管用,它不会随机打印重复值,但似乎不会以任何可识别的模式进行打印??我很抱歉!!这个错误是我的(在组中输入了错误的id)。这工作非常完美,正是我要找的!唉,像往常一样,现在的需求已经改变,不再需要了,但我相信我会再次使用它!