Страница 1 из 1

Динамическое формирование фильтра таблиц

Добавлено: 09 Октябрь 2008, 0:06
Stalker
Привет всем профи Слариона!
Есть проблемма, которую пока не могу решить! Чувствую что решение то лежит где-то на поверхности, но докопаться до него просто нет времени.

Условия. Имеется окно , в котором в поля (до 10 полей)- глобальные переменные (типа String и Long) вводится информация.
поле1(String)
поле2(Long)
поле3 (String)
поле4 и т.д
filtr - string(200)
Далее нажимается кнопка вызова таблицы. Во вставке действий по кнопке формируется фильтр в зависимости от заполненных полей. Если заполнено поле1(Clip(поле1)<>'' то
filtr = Instring(поле1,поле_таб1,1,1), если заполнено два поля,
то
filtr = Instring(поле1,поле_таб1,1,1) and Instring(поле2,поле_таб2,1,1)
если заполнено три поля,
то
filtr = Instring(поле1,поле_таб1,1,1) and Instring(поле2,поле_таб2,1,1) and поле3= поле_таб3
и т.д.

Вопрос, как эту конструкцию, куда и где запихнуть, чтобы выполнялось выбранное условие при открытии таблицы!

Есть функция (EVALUATE) для динамического формирования условия, заполнение через BIND, но с ней что-то не получается.
Если кто решал подобные проблеммы, помогите.
С уважением, Stalker.

Re: Динамическое формирование фильтра таблиц

Добавлено: 09 Октябрь 2008, 9:30
Игорь Столяров
Привет !

Посмотри раздел справки "Making the Transition to the ABC Templates", в нем в секции
"Task: I want to let the end-user dynamically filter a browse list at runtime." - есть подробное описание этого вопроса.

Хотя можно сделать и намного проще: объявить в окне Browse внутреннюю функцию MyFilter(),long, в ней описать все условия фильтрации и вставить ее штатными средствами в поле фильра Browse. Все и будет намного удобней работать (хотя и несколько медленний, в отличии от прямого указания строки).
фильтрации Browse

Re: Динамическое формирование фильтра таблиц

Добавлено: 12 Октябрь 2008, 23:19
Stalker
Спасибо за помощь!
Почитал help и все пошло
использовал brw1:SetFilter о нем подробно описано в справке
Stalker