![]() |
|
الترتيب في DBGrid - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : الترتيب في DBGrid (/showthread.php?tid=10788) |
الترتيب في DBGrid - appakar - 21-04-2020 لدي المكونات التالية 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
RE: الترتيب في DBGrid - ghostdz - 22-04-2020 التعليمة DESC تعمل في Query وليس في Table عليك بمراجعة الرابط التالي http://docwiki.embarcadero.com/Libraries/Rio/fr/FireDAC.Comp.Client.TFDTable.IndexFieldNames جرب الكود التالي كود : 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;RE: الترتيب في DBGrid - appakar - 22-04-2020 مشكور الأخ ghostdz حلت المشكلة |