Главная страница
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.016 c
1-1001
KIR
2002-06-20 12:53
2002.07.01
Сохранение типа TString и TExtended в один файл


14-1160
Pretavius
2002-05-30 01:53
2002.07.01
Необходимо


3-882
AFROLOV
2002-06-06 16:16
2002.07.01
как записать дату+время в бд Access?


1-971
akim2
2002-06-19 20:09
2002.07.01
Помогите пож с ListView


1-1039
AFROLOV
2002-06-18 16:02
2002.07.01
Как программно закрыть popupmenu?