Delphi DBGridEh按標題進行排序
阿新 • • 發佈:2019-02-15
DBGridEh按標題進行排序
DBGridEh元件可以在標題行單元格中顯示小三角形升、降排序標誌符圖片,在執行時可點選標題行,
圖片自動切換並做相應排序。具體屬性設定如下:
OptionsEh=dghAutoSortMarking
Column.Title.TitleButton=true
SortMarkedColumns :當前排序列(可在執行時,程式碼中使用).
兩種程式碼:
第一種:
procedure TManageProjForm.dbgrdh1TitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh); begin if FieldName = ' ' then Exit; if TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Active = False then begin Exit; end; if Column.Title.SortMarker = smdowneh then TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Sort := Column.FieldName else TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Sort :=column.FieldName +' DESC'; end;
第二種:
procedure TManageProjForm.dbgrdhProjectTitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh); var sortstring:string; //排序列 begin //進行排序 with Column do begin if FieldName = ' ' then Exit; if TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Active = False then begin Exit; end; case Title.SortMarker of smNoneEh: begin Title.SortMarker := smDownEh; sortstring := Column.FieldName + ' ASC '; end; smDownEh: begin sortstring := Column.FieldName + ' ASC '; end; smUpEh: begin sortstring := Column.FieldName + ' DESC '; end; end; //進行排序 try TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Sort := sortstring //dataset為實際資料集變數名 except end; end; end;
其實兩者差不多。注意:切記lookup型欄位不可做上述設定,否則系統會提示錯誤。