Показать сообщение отдельно
  #7  
Старый 20.10.2009, 23:39
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

маленький пример из того, как это делал я:
Код:
procedure TfFilter.btOKClick(Sender: TObject);
var
kDelim, cnt:integer;
dFilt:string;
begin
kDelim:=0;
dFilt:='';
DM.VIEW_DS.Filtered:=False;
DM.VIEW_DS.Filter:='';
for cnt:=1 to 3 do
   begin
   cb:=TCheckBox(FindComponent('b'+IntToStr(cnt)));
   if cb.Checked=True
      then
      begin
      ed:=TEdit(FindComponent('b'+IntToStr(cnt)+'ed'));
      Inc(kDelim);
      if kDelim>=2
         then dFilt:=' and '
         else dFilt:='';
      DM.VIEW_DS.Filter:=DM.VIEW_DS.Filter+dFilt+ed.Hint+' = '''+ed.Text+'*''';
      end
      end;
DM.VIEW_DS.Filtered:=True;
Close;
end;

P.S.: 1. Кол-во ЧекБоксов я знал заранее (3) ... поэтому вбил вручную (но можно и програмно посчитать)
2. Использовались ЧекБоксы и Едиты
3. Применялось только условие AND
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием