Мы разработали новый отчет, используя данные json с jsonql в качестве языка запросов и несколько уровней подотчетных отчетов, которые генерируются в студии Jaspersoft (v6.6.0).
Нам нужен некоторый код Java, чтобы взять сгенерированные данные JSON и создать отчет, используя предварительно скомпилированные файлы Jasper на сервере, запустив Jasper 6.6.0 на сервере, однако, когда мы пытаемся сгенерировать PDF-файлы в Java, некоторые вложенные отчеты выдают сообщение о том, что это не может найти данные для использования, и когда мы удаляем эти проблемные подотчеты, он генерирует в основном пустой файл с 1 или 2 заголовками, и соответствующая информация / таблицы не отображаются.
InputStream jasperTemplateStream = getReportingTemplate();
JRDataSource jsonDataSource = new JsonQLDataSource(request);
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperTemplateStream);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jsonDataSource);
JasperExportManager.exportReportToPdfStream(jasperPrint, response);
Есть идеи, почему? Наши версии Jaspersoft Studio и Jasper mvn
совпадают.
Трассировка стека выглядит следующим образом:
net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: ((net.sf.jasperreports.engine.data.JsonQLDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("assetClasses")
...
Caused by: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: ((net.sf.jasperreports.engine.data.JsonQLDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("assetClasses")
...
Caused by: net.sf.jasperreports.engine.JRException: No JSON data to operate on!