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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.03.2007, 16:37   #1  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
? Проблема с lookup-формой
Здравствуйте.
Такая проблема - нужно поставить динамический фильтр на lookup форму.
Делаю так, как обычно для любой другой формы - контрол нужного типа, при изменениии значения - вызов executequery нужного источника данных, на ините этого источника - инициация querybuildrange, на собственно executequery - установка значения фильтра. Реально фильтр устанавливается только на начальное значение (то, что задается при открытии формы). При изменении значения в контроле фильтр не изменяется .
Старый 28.03.2007, 16:40   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
честно говоря, не осилил.
Как можно делать для лукап-формы динамический фильтр?
Ведь под динамическим фильтром подразумевается dynalink? или что-то другое?

При смене записи лукап форма должна остаться открытой и перестроить запрос, что ли?
Ничего не понял
Старый 28.03.2007, 16:44   #3  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
У нас очень много складов (производство) и нам понадобилось показывать только часть из них. соответственно, добавляем поле типа ModuleAxapta в таблицу складов и полем типа dropdown предлагаем выбрать фильтр. Вы абсолютно правы - при выборе значения фильтра форма lookup должна остаться открытой и перестроить запрос.
Старый 28.03.2007, 16:55   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ну, если комбо-бокс находится на лукап форме, то вроде как должно работать.

Посмотрите, к примеру, стандартную же форму выбора складов. Там и закладки, и галочки и т.д. И фильтровать можно.

Думаю, что-то где-то забыли.
Выкладывайте форму, может кто найдет "где собака порылась"
Старый 28.03.2007, 17:04   #5  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
Вот проект
Вложения
Тип файла: rar Locations.rar (12.8 Кб, 69 просмотров)

Последний раз редактировалось gefr; 28.03.2007 в 17:07.
Старый 28.03.2007, 17:22   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Простите, Ваш проект посмотреть не удалось.
Слишком много изменений, а чистого приложения в данным момент нет.
Но я сдублировал форму InventLocationIdLookup, добавил на нее ComboBox, тип Noyes.
В executeQuery добавить (или нашел) фильтр по полю Manual (BaseEnum NoYes)
и устанавливаю в зависимости от значения в комбобоксе.

Значение беру так:
queryValue(ManualComboBox.selection())

Возможно в этом проблема у вас.

Более того, напомню, что этот комбо-бокс не должен быть привязан к источнику данных. (должен быть unbound). я, к примеру, свой комбобокс вынес над Tab ctrlTab

Дальше, создал расширенный тип (дублировал InventLocationId), у него указал форму в свойства сдублированную в свойстве FormHelp

Создал новую форму, на нее добавил одно единственное поле созданного типа сдублированного.

Все перекомпилил, запустил, по комбо-боксу все нормально работает, склады фильтруются. все четко.
Старый 28.03.2007, 17:41   #7  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
спасибо - действительно, проблема была именно в этом. теперь срослось (я делал enum2value(combocontrol.item())). но - еще одна проблема - мне еще надо ставить фильтр по значению поля checkbox. при нажатии на это поле он автоматически закрывает форму...
Старый 28.03.2007, 17:47   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ну а тут уже есть все в вашей же форме.
На галочке перекрыт метод mouseUp
в нем устанавливается описанная в classDeclaration переменная canSelect = false

в коде метода closeSelect код

if (canSelect)
super();

p.s. нажал отправить раньше времени.
Продолжаю.

такую же проверку нужно и в метод close

В методе clicked на галочке это значение устанавливается в true (метод mouseUp уже отработал)
Старый 28.03.2007, 17:52   #9  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
понял, спасибо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема со своим lookup-ом sweeper DAX: Программирование 9 15.01.2009 18:38
Подскажите в чем проблема у Lookup AndrianG DAX: Программирование 2 06.01.2009 17:38
Проблема с Lookup Form artem-t DAX: Программирование 5 17.01.2007 13:15
lookup - проблема. Помогите! kashperuk DAX: Программирование 14 10.12.2004 15:28
проблема с lookup'ом Omeo DAX: Программирование 5 24.03.2004 13:24

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

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

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