Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JasperReports передать нескольким subreport, JRResultSetDataSource через главный отче 
:(
    Опции темы
Старатель
Дата 19.8.2009, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.8.2009

Репутация: нет
Всего: нет



Раньше был запрос к базе из java в количестве 1, результат его выполнения ложился в resultSet, который дальше ложился в JRResultSetDataSource и после нам выдавался отчет, выдержки из кода:

Код

      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 перед тем приняться за главный? (да и вообще не находит джаспер не находит подотчет, хотя в главном путь прописан , постоянно пишет какие-то 

Код

.....
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 подотчетов, как эти датасурсы разделять.
PM MAIL   Вверх
Старатель
Дата 4.9.2009, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.8.2009

Репутация: нет
Всего: нет



Давно тут не был, а чего-то ничего так и не написано ) Исправляем ситуацию:
Вобщем фсе решаемо,
1) Указывать надо .jasper, перед этим предварительно скомпилировав .jrxml, что-то типа
Код

JasperCompileManager.compileReportToFile(jrxmlFullPath, jasperFullPath);

на продакшене надо придумывать методы, чтобы если jrxml не был изменен - он заново не компилялся.
Так там еще пара путей видится.

2)Простой ответ - запихать можно все! И JRResultSetDataSource и collection или вот селект к базе, а потом еще в параметрах передать коннекшн, и при создании подотчета сказать, чтобы юзало коннекшн мастер-отчета, ну  а селекты параметрами передавать (в подотчете есть передача параметров из мастер-отчета, можно в iReport'e указать)

3) это не юзал.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Репортинговые системы | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.