![]() |
|
|
#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 Последний раз редактировалось Yurk@, 20.10.2009 в 23:42. |