Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.01;
Скачать: CL | DM;

Вниз

не работает onFilterRecord   Найти похожие ветки 

 
alex-ran ©   (2002-06-07 12:20) [0]

Доброго всем времени суток.
В моей таблице используются подстановочные поля. И если я в качестве условия фильтра использую такое поле то всегда возвращается пустой набор.
Если использую обычное поле (fkData) то все нормально - фильтр работает. Например (поле "femaly" типа fkData, поле "telephon" типа fkLookup):
Accept:=DataSet["femaly"]="Моя фамилия" - работает
Accept:=DataSet["femaly"]="Мой телефон" - не работает

Уважаемые мастера, не подскажите в чем дело?
Или поля подстановки вообще нельзя использовать?


 
alex-ran ©   (2002-06-07 12:27) [1]

опечатался :) вторая строка кода
Accept:=DataSet["telephon"]="Мой телефон" - не работает


 
kaif ©   (2002-06-07 12:33) [2]

Боюсь, что нельзя использовать Lookup поля для фильтрации. Я даже не пробовал никогда. Мне кажется, что сначала по логике вещей нужно получить данные в DataSet, а уже потом разрешать ссылки. А OnFilterRecord заведует именно получением данных в набор. Следовательно на этой стадии просмотр lookup должен быть невозможен, так как еще нет данных о KeyValue для заглядывания в lookup и мне тут видится логическое противоречие... Но может, я и ошибаюсь.
Попытайся вместо Lookup использовать вычисляемое поле (fkCalculated) и руками сделай в OnCalcFields "заглядывание" в lookup таблицу. Это,возможно, сработает.


 
Nikolay M. ©   (2002-06-07 12:35) [3]

В принципе логично, что сначала решается вопрос, удовлетворяет ли запись наложенным фильтрам и только потом (если запись проходит фильтры) вычисляются значения Lookup и Calculated полей. Я с этим тоже столкнуля при Calculated-полях, поэтому мне было проще: я брал значение не Query1MY_CALC_FIELD.AsInteger, а значение функции, которая считала вычисляла значение этого поля в OnCalcFields. Твой выход из ситуации - завести побочный запрос, таблицу или вообще динамический массив в памяти и по OnFilterRecord искать в них по первичному ключу соответствующее значение твоего Lookup-поля.
Возможно, есть более красивые варианты, но это первое. что приходит в голову, а если нормально организуешь подключаемую таблицу в виде динамического массива (отсортируешь по ID, например, для ускорения поиска) то все будет работать достаточно быстро.


 
Nikolay M. ©   (2002-06-07 12:37) [4]

2
> kaif © (07.06.02 12:33)

опередил на 2 минуты :))



Страницы: 1 вся ветка

Текущий архив: 2002.07.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
14-1165
SleD
2002-05-29 11:47
2002.07.01
Подскажите где достать бесплатный хостинг +домен типа RU, COM, NE


4-1254
Danger
2002-05-03 22:46
2002.07.01
Как получить длинное имя файла


14-1143
~Sergius
2002-05-19 19:37
2002.07.01
ВНИМАНИЕ! СЕКРЕТНЫЕ ТЕХНОЛОГИИ!!!


3-885
Duke2
2002-06-06 21:18
2002.07.01
Вопрос о разрушении BLOB в DBF и Paradox


7-1230
Marser
2002-04-04 23:33
2002.07.01
Реестр!