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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Stalker
Активист
Сообщения: 128
Зарегистрирован: 01 Декабрь 2005, 20:47
Откуда: Минск
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение 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.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8033
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

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

Сообщение Игорь Столяров »

Привет !

Посмотри раздел справки "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
Make Clarion Great Again ! 😎
Stalker
Активист
Сообщения: 128
Зарегистрирован: 01 Декабрь 2005, 20:47
Откуда: Минск
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение Stalker »

Спасибо за помощь!
Почитал help и все пошло
использовал brw1:SetFilter о нем подробно описано в справке
Stalker
Специализация - программы для образования, делопроизводство, складской учет
Ответить