Важно то, что мы не используем никакую библиотеку JasperReports, а только их REST API.
Вот что у меня есть.Параметры запроса к серверу Jasper (сторона Java):
Код: Выделить всё
String jsonString = "{\"name\":\"One\", \"age\":Two, \"car\":Three}";
InputStream iostream = new ByteArrayInputStream(jsonString.getBytes(StandardCharsets.UTF_8));
reportData.put("data", iostream);
Код: Выделить всё
{
"reportUnitUri": "/reports/***/v1/***",
"outputFormat": "pdf",
"async": false,
"freshData": true,
"saveDataSnapshot": false,
"interactive": true,
"allowInlineScripts": true,
"ignorePagination": false,
"pages": null,
"attachmentsPrefix": null,
"parameters":
{
"reportParameter":
[
{
"name": "data",
"value":
[
"java.io.ByteArrayInputStream@7f8e1831"
]
}
]
}
}
Код: Выделить всё
...also tried...
Пытался использовать поддельные фиктивные значения — работает, печатает, но не может ничего получить из параметра «данные»:
Код: Выделить всё
Пытался использовать имя параметра JSON_INPUT_STREAM и передать его из кода Java, но это тоже нарушило отчет.
В целом, после печати отчет с разными комбинациями параметров. У меня либо пустая страница и заполнен раздел «Нет данных» (для тестовых целей), либо заполненная страница, но значение параметра нулевое.
Единственный вариант, который работает это:
- Передать параметр отчета в виде строки JSON
Код: Выделить всё
String datasetJson = objectMapper.writeValueAsString(dataSet.getData());
reportData.put("reportData", datasetJson);
- В шаблоне отчета обработайте это следующим образом:
Код: Выделить всё
Поэтому у меня вопрос: как правильно передать поток данных в шаблон отчета? Если поток данных использовать непросто, я могу попробовать переключиться на передачу объекта вместо потока. Пожалуйста, помогите мне найти, что я делаю не так.
Заранее спасибо!
Также пробовал эти ответы:
- Как заполнить отчет с использованием источника данных JSON, не получая нулевых значений?
- Заполнение отчетов из json с помощью JasperReports
- Отчет Jasper — передача потока ввода-вывода json в подотчет
- https://community.jaspersoft.com/forums ... -subreport /
- Как передать данные JSON в отчет Jasper с помощью rest
Подробнее здесь: https://stackoverflow.com/questions/789 ... g-rest-api