AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.06.2008, 09:42   #1  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Передача 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  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
Почему когда я запускаю главную форму и сразу же хочу напечатать отчет , у меня в окне настроек запроса отчета отражается "Ранее использованный запрос" со старыми range'ами ?
скорей всего у вас проблемы с распаковкой старых значений из SysLastValue, проврете что бы перед тем как вы передаете query из формы, вызывался метод getLast().
Старый 26.06.2008, 10:09   #3  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Цитата:
Сообщение от konopello Посмотреть сообщение
скорей всего у вас проблемы с распаковкой старых значений из SysLastValue, проврете что бы перед тем как вы передаете query из формы, вызывался метод getLast().

getLast срабатывает в run формы... передаю query на кнопке... какие могут быть заморочки ?
Старый 26.06.2008, 11:38   #4  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Не проверял, но попробуйте добавить метод.
X++:
public boolean mustLoadSaveQuery()
{
    return false;
}
Старый 26.06.2008, 14:50   #5  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
ничего не помогает...выявил закономерность :
если перед запуском отчета сработал executeQuery на форме источника, то в диалоге фильтра отчета подставляется текущий Query из формы...иначе - ранее использованный...
Причем не важно отправляю я в отчет MyDataSource_ds.Query() или MyDataSource_QR.Query()
помогите разобраться (
Старый 26.06.2008, 15:06   #6  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от Андрей К. Посмотреть сообщение
ничего не помогает...выявил закономерность :
если перед запуском отчета сработал executeQuery на форме источника, то в диалоге фильтра отчета подставляется текущий Query из формы
Ну, и славно! Вызовите executeQyery() принудительно. Перед запуском отчета...
__________________
Best Regards,
Roman
Старый 26.06.2008, 15:09   #7  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
для обрыва связи между формой и репортом нужно попробовать вызвать метод clearDynalinks() на датасорсе.
XXXX_ds.query().dataSourceTable(tablenum(XXXX)).clearDynalinks()
За это сообщение автора поблагодарили: Андрей К. (1).
Старый 26.06.2008, 15:20   #8  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Цитата:
Сообщение от DSPIC Посмотреть сообщение
для обрыва связи между формой и репортом нужно попробовать вызвать метод clearDynalinks() на датасорсе.
XXXX_ds.query().dataSourceTable(tablenum(XXXX)).clearDynalinks()
Спасибо! сработало!
ух спустя полтора года не перестаю находить дремучие места в лесу аксапты
Старый 26.06.2008, 15:27   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ну, методы классов QueryBuild* - это не дремучий лес.
Советую их все просмотреть хотя бы в плане названия, а еще лучше, каждый попробовать и понять, чего именно он делает.
Старый 26.06.2008, 15:38   #10  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Ну, методы классов QueryBuild* - это не дремучий лес.
Советую их все просмотреть хотя бы в плане названия, а еще лучше, каждый попробовать и понять, чего именно он делает.
метод ClearDynalinks использовал на практике было дело (при взаимодействии форм)...но что то не додумался в случае с отчетом его применить
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Передача параметра в Запрос(Query) Zoe DAX: Программирование 5 07.07.2008 15:27
Сориентируйте в направлении куда копать...DAX 4. Report&Query проверка связи DAX: Программирование 0 28.01.2008 13:17
Dynamics AX Geek: Using query() Blog bot DAX Blogs 0 28.10.2006 16:40
Решение проблемы с Query! PlasticinE DAX: Программирование 21 28.10.2002 11:24
передача параметров в Report eugene egorov DAX: Программирование 1 25.06.2002 19:34

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:14.