Проблема с повторяющимися значениями в iReport / JasperReports 3.6.1 - PullRequest
1 голос
/ 20 февраля 2012

Я использую 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 распознает второго Джона как повтора и удаляет его.

Так что мой вопрос, есть ли способ сделатьэтот?Я не смог найти способ сгруппировать элементы, а затем не повторить в поле идентификатора.Я попытался поиграть с отслеживанием последних 2 идентификаторов, а затем распечатать, соответствует ли текущий последний, но не смог выяснить, как заставить его обновляться каждый раз, чтобы он отслеживал.

У кого-нибудь есть идеи?

Я использую ireport (и jasperreports) 3.6.1 и знаю, чтобы сделать запрос, который вернет мне то, что мне нужно, но предпочел бы, чтобы форматирование выполнялось на стороне отчета.

1 Ответ

2 голосов
/ 21 февраля 2012

Создайте группу на $F{Id} с именем MyGroup. Не создавайте заголовок группы или нижний колонтитул группы. [На данный момент ваш отчет будет выглядеть точно так же, как в вашей первой версии.]

Затем добавьте выражение «выражение для печати» в каждое из следующих полей: Id, firstname, фамилия. Выражение должно выглядеть так:

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

Это позволит вам печатать свои поля один раз для каждого идентификатора.

...