{$R *.dfm}
uses EhlibADO; //自动排序ADO数据集一定要引用此单元;手工排序可以不需要
//实现多排序:Ctrl + 用鼠标点要排序的列标头
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
Col:TColumnEh;
begin
DBGridEh1.DataSource:=DataSource1;
DataSource1.DataSet:=ADOQuery1;
ADOQuery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source=f:\mcmygs.mdb;'+
//'User Id=Admin;'+
//'DataBase PassWord=123456;'+
'Persist Security Info=False;'+
//报错:"无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开",请使用以下连接
'Jet OLEDB:Database Password=123456';
ADOQuery1.SQL.Text:='Select 自编号,合同号,币种,金额,银行 from dzb';
ADOQuery1.Open;
for i:=0 to ADOQuery1.Fields.Count-1 do
begin
Col:=DBGridEh1.Columns.Add;
Col.FieldName:=ADOQuery1.Fields[i].FieldName;
Col.Title.Font.Color:=clBlue;
Col.Title.Alignment:=taCenter;
//Col.AutoFitColWidth:=True; //自适应单元格宽度
if ADOQuery1.Fields[i].DataType=ftFloat then Col.DisplayFormat:='#,###,###.00';
end;
DBGridEh1.AutoFitColWidths:=True;
DBGridEh1.ColumnDefValues.Title.TitleButton:=True;
//注意:排序字段不能为LookUp类型的字段
DBGridEh1.OptionsEh:=DBGridEh1.OptionsEh+[dghAutoSortMarking,dghMultiSortMarking];
DBGridEh1.SortLocal:=True; //客户端排序
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DBGridEh1.Align:=alTop;
end;