Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > фильтрация по двум условиям через AND


Автор: АСК 31.10.2004, 15:57
ПА-МА-ГИ-ТЕ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!



сделал фильтр по дате - работает
сделал фильтр по фамилии - работает

взял оба условия с этих фильтров и объединил в один через and - ВСЁЁЁЁ - ошибка (Operator not applicable to this operand type)

Уже мозги плавятся!!!!!!!! ГДЕ ОШИБКА???? Никак не пойму

PS: пробовал условия фильтрации заключать в скобки - не помогает


Автор: Dayana 31.10.2004, 16:27
АСК, покажи пожалуйста код, а так не понятно...

Автор: АСК 31.10.2004, 16:50
Filter:='Data='+''''+maskEdit1.Text+'''';- работает
Filter:='Famil='+''''+Edit1.Text+''''; - работает

Filter:=('Data='+''''+maskEdit1.Text+'''') and ('Famil='+''''+maskEdit1.Text+'''');

Автор: Elfin 31.10.2004, 16:59
как я понимаю переменная filter у тебя - типа string, а операция and приемлема только к переменным логического типа, вместо and поставь простой плюсик :))

Автор: АСК 31.10.2004, 17:15
Спасибо ща попробую

Автор: Elfin 31.10.2004, 17:17
ну как?

Автор: АСК 31.10.2004, 17:20
Все ОК

СПАСИБО :D

Автор: p0s0l 31.10.2004, 18:49
АСК, и что, так заработало ?
Странно... Простая замена AND на + не должна была помочь...
Во-первых, AND должен быть в фильтре как соединитель условий...
Во-вторых, у тебя для фильтра даты и фамилии используется один и тот же MaskEdit, хотя в отдельных вариантах - разные компоненты...
В-третьих, ты запутался с апострофами и двойными кавычками...
В итоге должно быть так:
Caption := ('Data="'+ maskEdit1.Text +'" and Famil="'+Edit1.Text+'"');


Автор: Guest 1.11.2004, 19:16
Извиняюся
Посол прав
просто у меня в проге после этого фильтра с +(and) стоит другой фильтр по одному условию
видимо он у меня и сработал

Посол спасибо твой код действует :yasno

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)