Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Jasper reports.как изменить запрос в сабрепорте / 7 сообщений из 7, страница 1 из 1
08.02.2011, 08:44
    #37103433
Nasmus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper reports.как изменить запрос в сабрепорте
Народ помогите. есть несколько динамических параметров.в зависимости от парам. надо изменить запросы в мастере и сабрепорте.
мастере нормально после компиляции меняется запрос, а в сабрепорте никак не меняется.
...
Рейтинг: 0 / 0
08.02.2011, 12:31
    #37103974
sanBez
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper reports.как изменить запрос в сабрепорте
Nasmus,

Не совсем понятно. Ты jrxml на лету генеришь с разными запросами? Или все же параметр к запросу subreport не привязывается?
Можно чуть подробнее?
...
Рейтинг: 0 / 0
08.02.2011, 13:23
    #37104119
Nasmus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper reports.как изменить запрос в сабрепорте
да ленту сформирую запрос.Так как заранее не знаю значение параметров, они могут и пустыми\значениями.
if условие1 then parametr1=" column1 in (x,y,z)" else parametr1=" "
if условие2 then parametr2=" and column2 in (x,y,z)" else parametr2=" "
if условие3 then parametr3=" and column3 in (x,y,z)" else parametr3=" "
далее код компиляции мастера
query.setText("select * from table1 where "+parametr1+parametr2+parametr3);
JasperDesign jasperDesign = JRXmlLoader.load(application
.getRealPath("FinansN1.jrxml"));

//set query
jasperDesign.setQuery(query);

// jrxml compiling process
JasperReport jasperReport = JasperCompileManager
.compileReport(jasperDesign);
//////////////////////////////

//parameters
Map queryParameters = new HashMap();
queryParameters.put("date1", parameters.getPeriod().getDateFrom());

//connection
DatabaseConnection dbCon = new DatabaseConnection();
Class.forName(dbCon.getDriverName());
Connection con = DriverManager.getConnection(dbCon.getConnectionString(),
dbCon.getUsername(), dbCon.getPassword());

JasperPrint jasperPrint = JasperFillManager.fillReport(
jasperReport, queryParameters, con);
также меняю query в subreport компилирую ,но не меняется...
...
Рейтинг: 0 / 0
08.02.2011, 13:57
    #37104195
sanBez
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper reports.как изменить запрос в сабрепорте
Nasmus,

Как предположение: меняешь в subreport после вызова filllReport для основного отчета. В этом случае fillReport подхватывает уже скомпиленный старый subreport и то что ты в subreport что-то делал на работу не влияет.

Компиляция subreport идет до вызова fillReport по оcновному или после?
...
Рейтинг: 0 / 0
09.02.2011, 07:55
    #37105736
Nasmus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper reports.как изменить запрос в сабрепорте
нет, сперва компилирую subreport потом мастер. выше приведенный код пример компиляции.
...
Рейтинг: 0 / 0
09.02.2011, 10:30
    #37105976
Nasmus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper reports.как изменить запрос в сабрепорте
SanBez, спасибо за внимание, нашел решение.
оказывается после компиляции .jasper файл в директории не меняется, он хранится в сессии, а в мастере путь subreporta указана жестко.
а надо было обращаться в сессию.
...
Рейтинг: 0 / 0
09.02.2011, 12:17
    #37106338
sanBez
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jasper reports.как изменить запрос в сабрепорте
Nasmus,

Я бы все равно покопал в сторону статического jrxml и jasper. Например, переформировав условие запроса типа:

select * from table1 where ( column1 in (x,y,z) AND условие1) or ( column2 in (x,y,z) AND условие2) и т.д.
(я понимаю, что это абстракция и в реальности посложнее, но путь аналогичен)

В этом случае таких проблем не возникнет в принципе
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Jasper reports.как изменить запрос в сабрепорте / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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