28.03.2007, 16:37 | #1 |
Участник
|
Проблема с lookup-формой
Здравствуйте.
Такая проблема - нужно поставить динамический фильтр на lookup форму. Делаю так, как обычно для любой другой формы - контрол нужного типа, при изменениии значения - вызов executequery нужного источника данных, на ините этого источника - инициация querybuildrange, на собственно executequery - установка значения фильтра. Реально фильтр устанавливается только на начальное значение (то, что задается при открытии формы). При изменении значения в контроле фильтр не изменяется . |
|
28.03.2007, 16:40 | #2 |
Участник
|
честно говоря, не осилил.
Как можно делать для лукап-формы динамический фильтр? Ведь под динамическим фильтром подразумевается dynalink? или что-то другое? При смене записи лукап форма должна остаться открытой и перестроить запрос, что ли? Ничего не понял |
|
28.03.2007, 16:44 | #3 |
Участник
|
У нас очень много складов (производство) и нам понадобилось показывать только часть из них. соответственно, добавляем поле типа ModuleAxapta в таблицу складов и полем типа dropdown предлагаем выбрать фильтр. Вы абсолютно правы - при выборе значения фильтра форма lookup должна остаться открытой и перестроить запрос.
|
|
28.03.2007, 16:55 | #4 |
Участник
|
Ну, если комбо-бокс находится на лукап форме, то вроде как должно работать.
Посмотрите, к примеру, стандартную же форму выбора складов. Там и закладки, и галочки и т.д. И фильтровать можно. Думаю, что-то где-то забыли. Выкладывайте форму, может кто найдет "где собака порылась" |
|
28.03.2007, 17:04 | #5 |
Участник
|
Вот проект
Последний раз редактировалось gefr; 28.03.2007 в 17:07. |
|
28.03.2007, 17:22 | #6 |
Участник
|
Простите, Ваш проект посмотреть не удалось.
Слишком много изменений, а чистого приложения в данным момент нет. Но я сдублировал форму InventLocationIdLookup, добавил на нее ComboBox, тип Noyes. В executeQuery добавить (или нашел) фильтр по полю Manual (BaseEnum NoYes) и устанавливаю в зависимости от значения в комбобоксе. Значение беру так: queryValue(ManualComboBox.selection()) Возможно в этом проблема у вас. Более того, напомню, что этот комбо-бокс не должен быть привязан к источнику данных. (должен быть unbound). я, к примеру, свой комбобокс вынес над Tab ctrlTab Дальше, создал расширенный тип (дублировал InventLocationId), у него указал форму в свойства сдублированную в свойстве FormHelp Создал новую форму, на нее добавил одно единственное поле созданного типа сдублированного. Все перекомпилил, запустил, по комбо-боксу все нормально работает, склады фильтруются. все четко. |
|
28.03.2007, 17:41 | #7 |
Участник
|
спасибо - действительно, проблема была именно в этом. теперь срослось (я делал enum2value(combocontrol.item())). но - еще одна проблема - мне еще надо ставить фильтр по значению поля checkbox. при нажатии на это поле он автоматически закрывает форму...
|
|
28.03.2007, 17:47 | #8 |
Участник
|
Ну а тут уже есть все в вашей же форме.
На галочке перекрыт метод mouseUp в нем устанавливается описанная в classDeclaration переменная canSelect = false в коде метода closeSelect код if (canSelect) super(); p.s. нажал отправить раньше времени. Продолжаю. такую же проверку нужно и в метод close В методе clicked на галочке это значение устанавливается в true (метод mouseUp уже отработал) |
|
28.03.2007, 17:52 | #9 |
Участник
|
понял, спасибо.
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Проблема со своим lookup-ом | 9 | |||
Подскажите в чем проблема у Lookup | 2 | |||
Проблема с Lookup Form | 5 | |||
lookup - проблема. Помогите! | 14 | |||
проблема с lookup'ом | 5 |
|