Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск в 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*''';


Наверх

Титульная страница Поиск, карта сайта Написать письмо