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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.08.2018, 11:28   #1  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Фильтрация источника данных формы - мелкий нюанс
Коллеги, подскажите, пжалста, по ситуации, ибо чую наличие некоего мелкого, но адски существенного пробела в понимании работы subj'а.

Есть форма с гридом и источником данных, который фильтрую следующими способами (каждый пункт выполнялся на свежезапущенной форме - т.е. состояние источника данных идентично в обоих случаях):
  1. в стандартном диалоге редактирования запроса добавляю связанную таблицу и указываю ограничение по ее определенному полю
  2. в обработчике нажатия определенной кнопки на форме, в состав query() источника данных вношу ту же связанную таблицу, что и в п.1 в режиме ExistJoin, создаю в полученном по ней источнике данных объект QueryBuildRange и устанавливаю ему то же самое значение, что и в п.1
В первом случае на панели инструментов формы с отфильтрованными данными активируется кнопка сброса установленных фильтров, а во втором - нет.

В чем заключается отличие ?
Как система распознает, что в одном случае есть наложенные фильтры, которые можно сбросить и активирует соотв. кнопку ?
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Старый 06.08.2018, 11:35   #2  
Pandasama is offline
Pandasama
Участник
 
456 / 134 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
возможно, в одном случае изменения в ds.query(), а в другом в ds.queryRun().query() ?
Старый 06.08.2018, 12:14   #3  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Не-не-не ...
При работе через объект, возвращаемый ds.queryRun().query() вообще не работает фильтрация по при'join-енной таблице , т.к. при любом последующем вызове ds.executeQuery() записанная туда структура источников данных и ограничений перезатирается.
Работа в любом случае идет через ds.query()
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Старый 06.08.2018, 12:22   #4  
Pandasama is offline
Pandasama
Участник
 
456 / 134 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
а сами запросы вы уже сравнивали по-объектно?
может быть, у ренджей наложенных через стандартный диалог, какие-то свойства выставлены (Hidden, Locked и проч.) ?
Старый 06.08.2018, 12:22   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
Не-не-не ...
При работе через объект, возвращаемый ds.queryRun().query() вообще не работает фильтрация по при'join-енной таблице , т.к. при любом последующем вызове ds.executeQuery() записанная туда структура источников данных и ограничений перезатирается.
Как и пользовательский фильтр

Цитата:
Работа в любом случае идет через ds.query()
Если меняете queryRun query надо вызывать research
За это сообщение автора поблагодарили: TasmanianDevil (5).
Старый 06.08.2018, 12:23   #6  
mdanko2000 is offline
mdanko2000
Участник
 
44 / 40 (2) +++
Регистрация: 21.04.2014
В режиме конструктора запроса можно удалять, только свеже-добавленные связи. Если нажать "Ок" и выйти, а затем вернуться снова в настройку, то удалить связь уже нельзя.
Разбирался немного когда была необходимость сделать не только ExistsJoin, но и все остальные типы связи.

Всё дело в реализации.
Исходный запрос парсится на наборы и связи между ними.
Для вновь добавленных наборов выставляется своя иконка в Treeview. И по этой иконке определяется можно ли удалять набор. Если набор уже был в запросе, то иконка будет другая.
Думаю если поправить это место, то всё будет редактируемо.
Старый 06.08.2018, 12:23   #7  
Silence is offline
Silence
Участник
Аватар для Silence
 
287 / 27 (1) +++
Регистрация: 29.09.2004
Адрес: г. Москва, Зеленоград
Если ds.queryRun().query() == ds.query() фильтрации нет, соответственно сбрасывать нечего.
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу)
Старый 06.08.2018, 13:14   #8  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Макс, в очередной раз поклон тебе за наставление на путь истинный!
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Теги
formdatasource, querybuilddatasource, фильтрация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Получить номер источника данных по имени (ax 2009) SuperStar88 DAX: Программирование 3 22.06.2018 13:36
Импорт данных из ODBC источника JohNick DAX: Программирование 4 09.04.2004 10:17
Модификация источника данных Valia DAX: Программирование 1 19.09.2003 16:53
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07
Изменение свойств Grid с помощью метода источника данных displayOption Anton Sk. DAX: База знаний и проекты 0 03.12.2001 18:08

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

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

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