Ошибка группировки iReports - множественные вхождения? - PullRequest
6 голосов
/ 13 октября 2011

Меня раздражают iReports.Проблема в том, что у меня есть набор данных, возвращающий данные для нескольких клиентов, и я хочу использовать «Групповое выражение» для идентификатора клиента, и в отчете должны быть представлены вкладки сведений для каждого клиента.

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

Кто-нибудь видел это раньше?Честно говоря, я не могу поверить, что это на самом деле ошибка, но я кое-что пропустил.Просто еще много поиска, чтобы найти подходящий результат.

Ответы [ 2 ]

8 голосов
/ 14 октября 2011

Я думаю, что это проблема сортировки данных.
Цитата из iReport Ultimate Guide :

JasperReports группирует записи, оценивая выражение группы. каждый Когда значение выражения изменяется, создается новый экземпляр группы. Движок не выполняет сортировку записей (если не явно ), поэтому, когда мы определяем группы, мы всегда должны заботиться о сортировка записей. То есть, если мы хотим сгруппировать набор адресов по страны, записи, которые мы выбираем для отчета, должны уже упорядочено по стране. Сортировать данные при использовании SQL-запроса просто используя предложение ORDER BY. Когда это невозможно (то есть когда получить записи из документа XML), мы можем запросить JasperReports сортирует данные для нас. Это можно сделать с помощью сортировки параметры доступны в окне запроса


Вы можете сортировать данные следующими способами:

  • в случае использования Соединение с базой данных jdbc тип источника данных, который можно добавить в запрос отчета к условию ORDER BY customerId, где customerId - имя столбца поля с идентификатором клиента
  • в случае использования файла csv-соединения или чего-то подобного, вы можете организовать сортировку данных, добавив sortField свойство для поля в шаблон отчета ( jrxml file):
<jasperReport ...>
    ...
    <field name="customerId" class="java.lang.String"/>
    <sortField name="customerId"/>
3 голосов
/ 08 ноября 2011
  1. Оператор SQL имеет ORDER BY?
  2. Группа iReport сгруппирована по customer_id?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...