![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск в Delphi
Mariya © (2007-09-10 15:34:00)Подскажите пожалуйста, как осуществить поиск по двум и более полям.
У меня, например, Edit1-фамилия, Edit2-имя, так вот, я прописала фильтр, на каждый по отдельно сти, работает, реагирует на каждую нажатую следующую букву. А - выходят все фамилии на А, Аб-все начинающиеся на Аб и т.д. имя таакже, мне нужно, чтобы когда я начинала искать по имени, найденные фамилии оставались, и поиск шел уже среди этих фамилии, а у меня отдельно, фамилия игнорируется, ищет имя из все базы. Код прописан в самих едитах, на он клике. куда мне нужно писать и что? Заранее спасибо!
Anatoly Podgoretsky (2007-09-10 16:34:00) [1]> Mariya (10.09.2007 16:21:04) [4]
ОНО
Mariya (2007-09-10 16:31:00) [2]Спасибо большое!
Германн (2007-09-10 16:24:00) [3]
> Я не поняла +'and'
if (strFilter <> '') then strFilter := strFilter + ' and '+'Имя='+QuotedStr(Edit2.Text+'*');
Неужели трудно самой понять?
Mariya (2007-09-10 16:21:00) [4]Подскажи пожалуйста, а как добавить 3 поле, например отчество? Я не поняла +'and' ?
clickmaker (2007-09-10 15:50:00) [5]var
strFilter: string;
strFilter := '';
if Trim(edit1.Text) <> '' then
strFilter := 'Фамилия='+QuotedStr(Edit1.Text+'*');
if Trim(edit2.Text) <> '' then
if (strFilter <> '') then strFilter := strFilter + ' and ';
tbmain.Filter:= strFilter;
Mariya (2007-09-10 15:48:00) [6]Спасибо огромное за ответ, но посмотри пожалуйста, вот мой фильтр, в Едит1 начинаешь вводить фамилию он ищет (на имя такой же код), вот здесь как мне дописать, чтобы найденная фамилия осталась, и при вводе в Едит2 фамилии, он ее искал, не могу сама понять. Также заранее спасибо.
if trim(Edit1.Text)<>'' then
begin
tbmain.Filtered:=false;
tbmain.Filter:='Фамилия='+QuotedStr(Edit1.Text+'*');
tbmain.Filtered:=true;
end
else
tbmain.Filtered:=false;
if trim(Edit2.Text)<>'' then
begin
tbmain.Filtered:=false;
tbmain.Filter:='Имя='+QuotedStr(Edit2.Text+'*');
tbmain.Filtered:=true;
end
else
tbmain.Filtered:=false;
clickmaker (2007-09-10 15:38:00) [7]DataSet.Lookup?
Хотя для фильтра можно просто объединять
Filter := 'FirstName=''A*'' and LastName=''B*''';