Исполнитель запроса закрытия отчета Jasper, пока отчет еще не завершен - PullRequest
0 голосов
/ 17 июня 2020

Ситуация:

Требовалось изменить параметр группировки в отчете, где изменение выражения группы в заголовке было недостаточным (из-за сложного запроса / данных, смоделированных в БД). Итак, я создал новую версию существующего отчета. Разница в том, что в предыдущей версии был SubReport, а в новой версии мне пришлось скопировать все в MainReport из SubReport, Variables, TextFields, всего. Также обновлен запрос, чтобы включить поля, которые были загружены в запрос SubReport.

Проблема:

По одному я добавил каждую переменную в MainReport. Так что технически это должно работать, и так будет до тех пор, пока я не добавлю последнюю переменную в отчет, и он не сработает. Выражение этой переменной не делает ничего другого и вызывает простой метод в ClassPath для вычисления значений. Если я просто оставлю пустое выражение переменной, то отчет будет работать.

Debug

Начал копаться и заметил, что метод вызывается и возвращает значения правильно. Но по какой-то странной причине JasperReport закрывает обработчик запросов, пока данные из последней группы все еще обрабатываются.

Ниже я добавил снимки экрана Конец журнала отладки и выделил, когда обрабатывается последняя страница.

В строке 26 происходит сбой, поскольку исполнитель запроса закрывается в середине печати последней группы, где, как если бы я удаляю выражение переменной, он завершает обработку FINAL GROUP, затем SUMMARY BAND и PAGE FOOTER.

Я не могу понять, почему рендеринг отчета выполняется из-за значения переменной. Я использую настройку по умолчанию для Execution Time и Reset Value для всех переменных и связанных с ними текстовых полей

Ошибка при добавлении переменной Failing when variable added

Успешно завершается, когда переменная Выражение удалено Report Completes when variable Expression Removed

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...