Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2012, 10:52   #1
cookies
Новичок
Джуниор
 
Регистрация: 14.02.2012
Сообщений: 3
По умолчанию фильтр

Доброго времени суток, делфи кодеры)

есть код

Код:
procedure TForm3.ADOQuery1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
 var FieldVal:string;
begin
FieldVal:=DataSet['Фамилия'];
 Accept:=copy(AnsiUpperCase(FieldVal),1, length(Sedit1.text))= AnsiUpperCase(Sedit1.Text);
end;
ввожу фамилию, все нормально фильтрует и отображает.. как сделать чтоб в едит можно было ввести фамилию и через пробел имя - и в соответствии все фильтровалось и выводилось ?
cookies вне форума Ответить с цитированием
Старый 14.02.2012, 11:28   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нужно распарсить Edit на две переменные по наличию пробела.
и, если он есть, тогда проверять ещё одно условие - совпадение имени

примерно так:
Код:
procedure TForm3.ADOQuery1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);

var FieldValFam, FieldValName :string;
    sFam, sName : string;
    iPos : integer;
begin
 FieldValFam:=DataSet['Фамилия'];
 sFam := AnsiUpperCase(Sedit1.Text);
 iPos :=  Pos(' ', sFam); 
 if iPos>0 then begin
    sName := Trim(Copy(sFam, iPos+1, Length(sFam)-iPos));
    sFam := Copy(sFam, 1, iPos-1);
    FieldValName := DataSet[Имя'];
   Accept:= ( copy(AnsiUpperCase(FieldValFam),1, length(sFam))= sFam )
             and ( copy(AnsiUpperCase(FieldValName),1, length(sName))= sName );
 end
 else 
   Accept:=copy(AnsiUpperCase(FieldValFam),1, length(sFam))= sFam;
end;

Последний раз редактировалось Serge_Bliznykov; 14.02.2012 в 11:34.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.02.2012, 11:38   #3
cookies
Новичок
Джуниор
 
Регистрация: 14.02.2012
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
нужно распарсить Edit на две переменные по наличию пробела.
и, если он есть, тогда проверять ещё одно условие - совпадение имени

примерно так:
Код:
procedure TForm3.ADOQuery1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);

var FieldValFam, FieldValName :string;
    sFam, sName : string;
    iPos : integer;
begin
 FieldValFam:=DataSet['Фамилия'];
 sFam := AnsiUpperCase(Sedit1.Text);
 iPos :=  Pos(' ', sFam); 
 if iPos>0 then begin
    sName := Trim(Copy(sFam, iPos+1, Length(sFam)-iPos));
    sFam := Copy(sFam, 1, iPos-1);
    FieldValName := DataSet[Имя'];
   Accept:= ( copy(AnsiUpperCase(FieldValFam),1, length(sFam))= sFam )
             and ( copy(AnsiUpperCase(FieldValName),1, length(sName))= sName );
 end
 else 
   Accept:=copy(AnsiUpperCase(FieldValFam),1, length(sFam))= sFam;
end;
Serge_Bliznykov, Спасибо Вам большое!
cookies вне форума Ответить с цитированием
Старый 14.02.2012, 15:19   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Да не за что!

Неужели предложенный мною код работает?
(ну, после исправления моих опечаток, конечно!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.02.2012, 17:44   #5
cookies
Новичок
Джуниор
 
Регистрация: 14.02.2012
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Да не за что!

Неужели предложенный мною код работает?
(ну, после исправления моих опечаток, конечно!)
Работает отлично)) сейчас разбирусь в нем) Опечаток не было, единственное лишь кавычку забыли и все.

Спасибо еще раз!
cookies вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтр Magicmax Microsoft Office Excel 11 22.06.2010 12:20
Фильтр leno4ka_09 Microsoft Office Excel 2 13.05.2010 14:39
Фильтр Машенька Microsoft Office Access 1 16.12.2009 20:27
Фильтр Инночка Помощь студентам 4 30.04.2008 20:27