ترتيب محتوى DBGrid وذلك بالضغط على أي عنوان

aymen1992

المدير العام
طاقم الإدارة
إنضم
3 أغسطس 2020
المشاركات
98
النقاط
8
الجنس
ذكر
الاقامة
الجزائر-سطيف
ترتيب محتوى DBGrid وذلك بالضغط على أي عنوان أعلى DBGrid (يعني الترتيب حسب العمود الذي أضغط على عنوانه)
كيف يمكن برمجة ذلك عن طريق ADOQuery


procedure TForm1.DBGridCellClick(Column: TColumn);
var s:string;
begin
S:=DBGrid.SelectedField.FieldName;
// AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('SELECT * FROM Person1 ORDER BY '+S+' ASC'); //DESC
AdoQuery1.Open;
end;

كود آخر

procedure TForm1.DBGrid1DblClick(Column: TColumn);
var s:string;
begin
S:=DBGrid.SelectedField.FieldName;
// AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('SELECT * FROM Person1 ORDER BY '+S+' ASC'); //DESC
AdoQuery1.Open;
end;

كود آخر

procedure TMain.Main_GridTitleClick(Column: TColumn);
VAr Tri_Ch,SQL_Text:String;
I,Pos_Order:integer;
Begin
//vérifier si le tri et descandant ou ascendant
IF Tri_dec=True Then
Begin
Tri_ch:=' ASC'; Tri_dec:=False; // Tri_Dec Variable Public
End
ELSE
Begin
TRi_Ch:=' DESC'; Tri_Dec:=True; // Tri_Dec Variable Public
End;
Data.MainQuery.Active:=False;
Data.MainQuery.SQL.Clear;
Data.MainQuery.SQL.Add('Select * From Table ORDER BY '+Main_Grid.Columns.Items[column.Index].FieldName+' '+Tri_ch);
Data.MainQuery.Active:=True;
Statusbar1.Panels.Items[0].Text:='Tri Par '+Column.Field.DisplayName+' '+Tri_Ch;
// coloré tout les titre en Noir
For i:=0 to Main_Grid.Columns.Count-1 Do
Main_Grid.Columns.Items.Title.Font.Color:=clblack;
//coloré le tite de Tri En Rouge
Main_Grid.Columns.Items[column.Index].Title.Font.Color:=clred;
End;



Delphi
// ترتيب حسب العمود
procedure Tfrm.DBGrid1TitleClick(Column: TColumn);
var strList: TStrings;
begin
strList := TStringList.Create;
with AdoQuery1, Column do
begin
GetFieldNames(strList);
//Close;
SQL.Clear;
SQL.Add('SELECT * FROM Person1 ORDER BY '+strList[Index]+' '+ComboBox1.Text+';');
Open;
end;
strList.Free;
end;
// ملء ComboBox بالقيم
procedure Tfrm.FormCreate(Sender: TObject);
begin
with ComboBox1.Items do begin
Clear;
Add('ASC');
Add('DESC');
end;
end;


أو يمكن الاستعانة بمكون متطور
http://www.rosinsky.cz/delphi/dbgri...0F-2ZldwRmIHv0e4Y6X4MhhzAlHtCK9S3Px_Wtku1br9U
 
أعلى