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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.10.2016, 01:41   #1  
Dozer is offline
Dozer
Участник
AxAssist
Соотечественники
 
107 / 24 (1) +++
Регистрация: 16.11.2004
Адрес: г. Калгари, Канада
Доступ к текущему Query в диалоге
Добрый вечер.

Подкинули задачку в рамках измeнения SSRS отчёта на AX 2012 R3 попутно добавить несколько дополнительных параметров в диалог этого отчёта
и сделать их доступными или не доступными по условию - параметры доступны если отчёт будет печататься только для одного покупателя, а если больше чем
один, то параметры выключить. Количество покупателей определяется как обычно через фильтры Query.

Отчёт строит свой диалог с помощью UIBuilder класса, стандартно располагая кучу параметров с левой стороны и блок фильтров Query с кнопкой Select слева.

Изменять сами контролы параметров на диалоге очень легко, а вот получить текущее состояние Query с фильтрами которые выбрал пользователь у меня пока
что не получилось. Тоесть я добрался до Query отчёта через класс контроллер, вот только это не текущий элемент диалога а сохранённый с прошлого запуска Query
который приходит в диалог во время построения и соответственно не изменяется в ран тайме когда пользователь изменяет фильтры на диалоге.

Надеюсь кто-нибудь сталкивался с подобной задачей и решил её.
__________________
С уважением, Dozer
Старый 21.10.2016, 06:31   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Dozer Посмотреть сообщение
Изменять сами контролы параметров на диалоге очень легко, а вот получить текущее состояние Query с фильтрами которые выбрал пользователь у меня пока что не получилось
См. QueryFilter
__________________
-ТСЯ или -ТЬСЯ ?
Старый 21.10.2016, 17:09   #3  
Dozer is offline
Dozer
Участник
AxAssist
Соотечественники
 
107 / 24 (1) +++
Регистрация: 16.11.2004
Адрес: г. Калгари, Канада
Тут вероятно произошло недопонимание
Я знаю как получить фильтры когда у меня есть Query, более того в данном случае мне даже не надо их получать, а достаточно прогнать QueryRun от него и посчитатать до двух.
Проблема в том что у меня нет этого самого текущего Query в ран тайме диалога, и соответственно не у чего смотреть фильтры или прогонять ран.
__________________
С уважением, Dozer
Старый 31.10.2016, 12:50   #4  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
643 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Не сильно силен в 2012, но не оно ли?
X++:
this.dataContractInfo().dataContractObject() as Query;
где this - ваш UIBuilder класс
__________________
// no comments
Старый 01.11.2016, 20:04   #5  
Dozer is offline
Dozer
Участник
AxAssist
Соотечественники
 
107 / 24 (1) +++
Регистрация: 16.11.2004
Адрес: г. Калгари, Канада
Да, таким образом можно получить Query отчёта который сохранился с прошлого раза. Тоесть это Query распакованый но к сожалению не текущий. Он не меняется в рантайме диалога, по крайней мере для данного отчёта.
__________________
С уважением, Dozer
Старый 02.11.2016, 09:39   #6  
michel1971 is offline
michel1971
Участник
 
76 / 63 (3) ++++
Регистрация: 14.01.2011
не пробовал для SSRS, но для обычного SysOperation работает
X++:
SysOperationQueryDataContractInfo   queryInfo;
Query                               query;
    
queryInfo = this.dataContractInfo().getMemberObjects().lookup(methodStr(yours method with query in contract class));
query = queryInfo.dataContractObject();
Старый 04.11.2016, 15:54   #7  
fixer is offline
fixer
Участник
 
9 / 11 (1) +
Регистрация: 22.11.2014
Не знаю, то ли это или не то - в Controller можно перекрыть метод queryChanged. Когда пользователь выбирает что то и нажимает кнопку ОК, срабатывает этот метод, туда передается query со всеми установленными параметрами, кот. он выбрал.
За это сообщение автора поблагодарили: Dozer (1).
Старый 07.11.2016, 21:44   #8  
Dozer is offline
Dozer
Участник
AxAssist
Соотечественники
 
107 / 24 (1) +++
Регистрация: 16.11.2004
Адрес: г. Калгари, Канада
Цитата:
Сообщение от fixer Посмотреть сообщение
Не знаю, то ли это или не то - в Controller можно перекрыть метод queryChanged. Когда пользователь выбирает что то и нажимает кнопку ОК, срабатывает этот метод, туда передается query со всеми установленными параметрами, кот. он выбрал.
А! А вот с этим можно будет поработать. Я этот метод не заметил.
Оно всё ещё не совсем то что нужно и он не вызывается прямо через UIBuilder и по умолчанию не сохраняет Query куда надо, но тут можно поимпровизировать.
Спасибо за наводку.
__________________
С уважением, Dozer
Теги
report dialog, ssrs, uibuilder

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Спрятать некоторые фильтры из Query на диалоге Start DAX: Программирование 3 13.10.2015 15:36
emeadaxsupport: Microsoft Dynamics AX general performance analysis scripts page 5 Blog bot DAX Blogs 0 01.09.2014 14:11
AIF: OData Query Service Blog bot DAX Blogs 0 24.08.2011 09:11
модификация Query в диалоге PlasticinE DAX: Программирование 5 18.03.2003 10:07

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:57.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.