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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.06.2007, 12:18   #1  
sssss is offline
sssss
Участник
 
15 / 10 (1) +
Регистрация: 01.12.2006
методы после Range
Когда пользователь фильтрует записи на форме (устанавливает Range) какие методы срабатывают на датасорсе и в какой последовательности?
Старый 06.06.2007, 12:39   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
можно выполнить под профайлером и посмотреть, что получается.

Если самостоятельно накладывать range на queryRun.query - то надо вызывать research на ds. Из-под него вызовется executeQuery. Причем. если просто вызвать executeQuery будет совершенно другой эффект
Старый 06.06.2007, 13:17   #3  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
Если самостоятельно накладывать range на queryRun.query - то надо вызывать research на ds. Из-под него вызовется executeQuery. Причем. если просто вызвать executeQuery будет совершенно другой эффект
а может быть можно по подробней, что особенного еще делает research
Старый 06.06.2007, 13:29   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
как рар наоборот, насколько я помню (и если пошарить по аксфоруму где-то найдется мой вопрос и ответы), если сделать executeQuery просто - то QueryRun.query переинициализируется из query - то есть просто eecuteQuery делает лишнее - сносит quuryRun.query()
Старый 06.06.2007, 13:52   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Что-то ты, Максим, как-то заумно объясняешь
Насколько я это понимаю, на "простом" языке,

research() перечитывает данные, но сохраняет пользовательские фильтры (то есть используется _ds.QueryRun().query())
а executeQuery перечитывает данные, но НЕ сохраняет пользовательские фильтры (используется _ds.Query())
Старый 06.06.2007, 13:58   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Там заумно сделано. Если поставить break point на executeQuery, то можно заметить, что он вызывается из research
Старый 06.06.2007, 14:10   #7  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
research() перечитывает данные, но сохраняет пользовательские фильтры (то есть используется _ds.QueryRun().query())
а executeQuery перечитывает данные, но НЕ сохраняет пользовательские фильтры (используется _ds.Query())
т.е. получается разница только в том какой Query использовать, я прото точно не помню но по мойму у меня была интересная ситуация, отробатывал класс он создавал записи в таблице. Если я вызывал reserch записей не было видно в gride а если вызвать executeQuery то они появлялись, такое осщущение что при executeQuery он перечитал данные полностью из таблицы а при reserch как то не понятно, пользовательских фильтров небыло. И по этому я решил что в reserch еще что очень хитрое заложено
Старый 06.06.2007, 14:18   #9  
Мариночка is offline
Мариночка
Microsoft Dynamics
Аватар для Мариночка
Сотрудники Microsoft Dynamics
 
75 / 56 (2) ++++
Регистрация: 31.01.2005
Адрес: Киев
Да, executeQuery с research вызывается просто с установленным флагом, который отвечает за сохранение квериРана, а в самом executeQuery уже анализируется, что там с флагом. Фильтры поэтому в ресерче и сохраняются.

ЗЫ. Сорри, не видела поста
За это сообщение автора поблагодарили: belugin (4), kashperuk (3).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: Packing date range values in queries Blog bot DAX Blogs 1 09.11.2007 13:10
Пропадает значение Range при экспорте проекта gl00mie DAX: Программирование 3 27.09.2007 00:22
Найти display методы MrVisual DAX: Программирование 12 15.05.2007 09:53
Работа с Excel через COM и ошибка 0x800A03EC (Range.AutoFilter) gl00mie DAX: Программирование 15 30.03.2007 18:37

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

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

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