Ошибка увеличения набора данных кросс-таблицы

У меня есть источник данных, состоящий из объекта {groupName, rowName, colName, value}. Я пытаюсь поместить поля row, col, val в кросс-таблицу, разделенную группой [у группы есть заголовки]. Коллекция объектов данных хранится в качестве основного источника данных.

Я получаю сообщение об ошибке, когда пытаюсь сделать это:

net.sf.jasperreports.engine.JRRuntimeException: Error incrementing crosstab dataset
    net.sf.jasperreports.engine.fill.JRFillCrosstab$JRFillCrosstabDataset.customIncrement(JRFillCrosstab.java:762)
    net.sf.jasperreports.engine.fill.JRFillElementDataset.increment(JRFillElementDataset.java:193)
    net.sf.jasperreports.engine.fill.JRCalculator.calculateVariables(JRCalculator.java:162)
    net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:747)

У кого-нибудь есть предложения, почему это происходит или как это исправить?


person monksy    schedule 04.04.2011    source источник


Ответы (2)


Я нашел следующее, что может помочь: *

Что означает исключение «Данные кросс-таблицы уже обработаны»?

Это исключение возникает, если в набор данных кросс-таблицы добавляются дополнительные данные после того, как кросс-таблица уже была визуализирована.
Обычно это происходит, когда элемент кросс-таблицы связан с основным набором данных отчета (не использует прогон поднабора данных) и Атрибут resetType набора данных кросс-таблицы не соответствует месту, где отображается кросс-таблица.
Кросс-таблицы — это специальные компоненты, которые отображают агрегированные данные. А когда они связаны с основным набором данных отчета, вы просто не можете поместить их в раздел сведений, потому что нет данных для агрегирования из одной записи.
Такие кросс-таблицы могут находиться только в нижнем колонтитуле группы или на сводка отчета и имеют соответствующее значение resetType, чтобы их набор данных инициализировался каждый раз после их визуализации.
Если вы все еще считаете, что вам нужно отображать одну кросс-таблицу для каждой детали в основном документе, то почти наверняка это кросс-таблица должна быть связана с поднабором данных, а не с основным набором данных отчета.

Вы, должно быть, пытаетесь поместить все данные в раздел сведений, что не позволит компоненту кросс-таблицы объединить все ваши данные.

* jasperforge.org

person warren    schedule 04.04.2011
comment
Спасибо, что объяснили проблему. Другой обходной путь, который я нашел, заключался в том, чтобы изменить тип сброса для набора данных кросс-таблицы на «Нет». Затем вы все еще можете использовать основной набор данных и поместить кросс-таблицу в полосу сведений. - person andyandy; 18.02.2015

поместите кросс-таблицу в краткую секцию и удалите все остальные полосы, чтобы правильно выровнять кросс-таблицу. Я работаю с jasperstudio, и этот метод устранил проблему.

person Hemantha    schedule 29.03.2017