1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
//Table:TIBDataSet;
const
Instr='select * from FOURNISSEURS ';
var
Cole:Integer;//=-1;
Direct:Boolean;//=False;
resu,Filtr:string; //='';
procedure TFFournisseurs.DBGrid1TitleClick(Column: TColumn);
begin
edit1.Enabled:=true;
Resu:=Column.FieldName;
if Cole<>column.Index then
begin
Cole:=column.Index;
Direct:=false;
edit1.Text:='';
end
else
begin
Direct:=not Direct;
end;
Resu:=' ORDER BY '+Resu;
if Direct then Resu:=Resu+' DESC;';
Recherche;
end;
// j'ai séparé le code car j'utlise la procedure Recherche aussi pour le filtrage
procedure TFFournisseurs.Recherche;
var
m:string;
i:Integer;
begin
m:=Edit1.Text;
if m<>'' then
begin
Filtr:=DBGrid1.Columns[cole].FieldName;
m:=QuotedStr(m+'%');
Filtr:=' WHERE '+Filtr+' LIKE '+m+' ';
end else Filtr:='';
m:=Instr+Filtr+resu;
Table.DisableControls;
try
Table.Active:=False;
Table.SelectSQL.Text:=m;
Table.Active:=true;
// table.Fields[0].Visible:=false;
with DBGrid1 do
for i:=1 to Columns.Count-1 do
Columns[i].Title.Alignment:=taCenter;
finally
Table.EnableControls;
end;
end;
procedure TFFournisseurs.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if key=#13 then Recherche
else
if (key=#32) and (Edit1.SelStart=0) then key:=#0;
end; |
Partager