powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / JasperReports передать нескольким subreport JRResultSetDataSource через главный отчет
2 сообщений из 2, страница 1 из 1
JasperReports передать нескольким subreport JRResultSetDataSource через главный отчет
    #36153125
Копатель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раньше был запрос к базе из java в количестве 1, результат его выполнения ложился в resultSet, который дальше ложился в JRResultSetDataSource и после нам выдавался отчет, выдержки из кода:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
      preparedStatement = connection.prepareStatement(query);
      preparedStatement.execute();
      resultSet = preparedStatement.executeQuery();
      JRDataSource ds = new JRResultSetDataSource(resultSet);
      .....
      JasperReport jasperReport = JasperCompileManager.compileReport(patternFilename);
      JasperPrint jasperPrint;
      jasperPrint = JasperFillManager.fillReport(jasperReport, exportParams, jRResultSetDataSource);

Теперь же появился (и еще появятся) отчет, в котором не 1 селект к базе, а много, я так понимаю его надо сделать из подотчетов, каждому подотчету будет соответствовать свой query, и тут встают вопросы - как их передать подотчетам, на текущий момент столкнулся:

1) Если создать главный отчет и для него подотчет, то в пути к нему указывается .jasper, тогда как у меня сейчас только .jrxml - оно в смысле атоматом скомпилируется, или надо вызывать компиляцию/заполнение подотчетов из java перед тем приняться за главный? (да и вообще не находит джаспер не находит подотчет, хотя в главном путь прописан , постоянно пишет какие-то

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
.....
 3 . Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )
                value = (java.lang.String)("c:\test\test_subreport1.jrxml"); //$JR_EXPR_ID= 9 $
)
 3  errors

	at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java: 195 )
	at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java: 219 )
	at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java: 152 )
	at Test.export(Test.java: 54 )
	at Test.main(Test.java: 49 )



2) Можно ли запихать в exportParams какой-нибудь HashMap<String, Object>, или даже HashMap<String, JRResultSetDataSource>, где ключом будет название запроса, а JRResultSetDataSource - резальтсет, полученный из явы? Сработает ли это, и как эту байду обратно в главном отчете вытянуть и передать подотчетам?



3) Ну и вообще, может есть у кого работающий пример подобного? В частности, нарыл тут параметр REPORT_DATA_SOURCE - но не совсем понятно, как им пользоваться в свете 10-20 подотчетов, как эти датасурсы разделять.
...
Рейтинг: 0 / 0
JasperReports передать нескольким subreport JRResultSetDataSource через главный отчет
    #36526928
Dany305
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все нужно пихать в exportParams:
Предположим у подотчета есть датасет и есть параметры.

Тогда пихаем датасет под именем "subreportDatasetName" в exportParams, а для компонета subreport устанавливаем свойство "Data Source Expression" в $P{REPORT_PARAMETERS_MAP}.get("subreportDatasetName").

Для параметров подотчета создаем HashMap и пихаем в exportParams под именем "subreportParams"
, а для компонета subreport устанавливаем свойство "Parameters Map Expression" в $P{REPORT_PARAMETERS_MAP}.get("subreportParams").

Более того, в exportParams можно запихнуть и сам подотчет.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / JasperReports передать нескольким subreport JRResultSetDataSource через главный отчет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]