delphi4arab منتديات دلفي للعرب

نسخة كاملة : الترتيب في DBGrid
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
لدي المكونات التالية
FDConnection1
FDTable1
Datasourece1
DBGrid1

في الحدث dbgridonTitleClick كيف ترتيب البيانات
جربت هذا الكود
كود :
procedure TForm1.DBGrid1TitleClick(Column: TColumn); begin if FDTable1.IndexFieldNames = column.Field.FieldName then FDTable1.IndexFieldNames := column.Field.FieldName +' DESC' else FDTable1.IndexFieldNames := column.Field.FieldName; end;
يتم الترتيب في الضغطة الأولى لكن عند اعادة الترتيب تظهر رسالة الخطأ التالية
L'objet [<عنوان الخانة>DESC] est introuvable
التعليمة DESC تعمل في Query وليس في Table عليك بمراجعة الرابط التالي 
http://docwiki.embarcadero.com/Libraries...FieldNames

جرب الكود التالي 
كود :
procedure SortingTable(DataSet: TFDDataSet; AColumn: TColumn); var   FieldName, Sort: string;   SortPos: Integer;   procedure SwapSort;   begin     if Sort = '' then       Sort := ':AN'     else     begin       if Sort[2] = 'D' then         Sort[2] := 'A'       else Sort[2] := 'D';     end;   end; begin   if AColumn.Field.IsBlob then     Exit;   SortPos := Pos(':', DataSet.IndexFieldNames);   if SortPos = 0 then     SortPos := Length(DataSet.IndexFieldNames) + 1   else Sort := Copy(DataSet.IndexFieldNames, SortPos, 3);   FieldName := Copy(DataSet.IndexFieldNames, 1, SortPos - 1);   if FieldName = AColumn.Field.FieldName then     SwapSort   else   begin     Sort := ':AN';     FieldName := AColumn.Field.FieldName;   end;   DataSet.IndexFieldNames := FieldName + Sort; end;
مشكور الأخ ghostdz
حلت المشكلة