Demo学习: ColumnSort

ColumnSort

设置UniDGGrid点击表头时排序,设置方法比较麻烦且不通用,在实际开发中用处不大。

自己在项目中用了一个比较笨的办法,写了一个函数通过sql来排序:

procedure TMainForm.dbgRealtimeColumnSort(Column: TUniDBGridColumn;
  Direction: Boolean);
var
  sName: string;
  bAll, bSort: Boolean;
begin
  bSort := not dbgRealtime.TabStop; //正序或者倒序
  bAll := rdbAllStcd.Checked;
  //调用排序函数
  ShowRealtimeSTCDForSort(bAll, WaterworksInfo.wwID, Column.Index+1, bSort);
  dbgRealtime.TabStop := not dbgRealtime.TabStop;
end;

procedure TMainForm.ShowRealtimeSTCDForSort(AQureyAll: Boolean; ASTCD: string;
  SortCol: Integer; Sort: Boolean);
var
  sql: string;
  nSort: Integer;
begin
  nSort := Integer(Sort);
  if AQureyAll then
  begin
    sql := Format('exec spGetSort 1, 0, %d, %d', [SortCol, nSort]);
  end
  else
  begin
    sql := Format('exec spGetSort 0, %s, %d, %d', [ASTCD,SortCol,nSort]);
  end;
  UniMainModule.DoQuery(sql, UniMainModule.qryRealtime);
  SetRealtimeSTCDGrid;
end;
原文地址:https://www.cnblogs.com/fengxb/p/3108842.html