26.06.2008, 09:42 | #1 |
Постигающий
|
Передача query в report, проблемы
Доброго времени суток.
Стоит задача: выводить в отчете данные из грида на форме. сразу оговорюсь что это не автоотчет, тк перед запуском отчета нужно задать определенные параметры. по кнопке "Печать" на главной форме я передаю текущий query в отчет: args.caller(element); args.parmObject(MyDataSource_QR.Query()); args.name(reportStr(MyReport)); Report = new ReportRun(args); Report.init(); Report.run(); В init отчета я принимаю переданный query в переменную filterQuery и заношу его в query отчета: element.query(filterQuery); Итак перед запуском отчета появляется окно для настройки запроса отчета, в котором я вижу фильтры своего filterQuery , все хорошо казалось бы, НО! Почему когда я запускаю главную форму и сразу же хочу напечатать отчет , у меня в окне настроек запроса отчета отражается "Ранее использованный запрос" со старыми range'ами ? Все работатет как надо только если я модифицирую фильтр в главной форме перед запуском отчета... |
|
26.06.2008, 10:03 | #2 |
SAP
|
Цитата:
Почему когда я запускаю главную форму и сразу же хочу напечатать отчет , у меня в окне настроек запроса отчета отражается "Ранее использованный запрос" со старыми range'ами ?
|
|
26.06.2008, 10:09 | #3 |
Постигающий
|
|
|
26.06.2008, 11:38 | #4 |
Боец
|
Не проверял, но попробуйте добавить метод.
X++: public boolean mustLoadSaveQuery() { return false; } |
|
26.06.2008, 14:50 | #5 |
Постигающий
|
ничего не помогает...выявил закономерность :
если перед запуском отчета сработал executeQuery на форме источника, то в диалоге фильтра отчета подставляется текущий Query из формы...иначе - ранее использованный... Причем не важно отправляю я в отчет MyDataSource_ds.Query() или MyDataSource_QR.Query() помогите разобраться ( |
|
26.06.2008, 15:06 | #6 |
Сенбернар
|
Ну, и славно! Вызовите executeQyery() принудительно. Перед запуском отчета...
__________________
Best Regards, Roman |
|
26.06.2008, 15:09 | #7 |
Боец
|
для обрыва связи между формой и репортом нужно попробовать вызвать метод clearDynalinks() на датасорсе.
XXXX_ds.query().dataSourceTable(tablenum(XXXX)).clearDynalinks() |
|
|
За это сообщение автора поблагодарили: Андрей К. (1). |
26.06.2008, 15:20 | #8 |
Постигающий
|
|
|
26.06.2008, 15:27 | #9 |
Участник
|
Ну, методы классов QueryBuild* - это не дремучий лес.
Советую их все просмотреть хотя бы в плане названия, а еще лучше, каждый попробовать и понять, чего именно он делает. |
|
26.06.2008, 15:38 | #10 |
Постигающий
|
метод ClearDynalinks использовал на практике было дело (при взаимодействии форм)...но что то не додумался в случае с отчетом его применить
|
|