DBGridEh-OnTitleBtnClick

{$R *.dfm}

//uses EhlibADO; //自动排序ADO数据集一定要引用此单元;手工排序可以不需要

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;

//DBGridEh1.OptionsEh:=DBGridEh1.OptionsEh+[dghAutoSortMarking];

DBGridEh1.SortLocal:=True; //客户端排序

end;

 

procedure TForm1.DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer;

  Column: TColumnEh);

Begin

//使用OnTitleBtnClick事情采用手工排序,不使用dghAutoSortMarking

//注意:DESCASC一定要大写

case Column.Title.SortMarker of

  smNoneEh:

    begin

      Column.Title.SortMarker:=smUpEh; //升序标志

      TCustomADODataSet((Sender as TDBGridEh).DataSource.DataSet).Sort:=Column.FieldName+' ASC';

    end;

  smDownEh:

    begin

      Column.Title.SortMarker:=smNoneEh; //不排序

      TCustomADODataSet((Sender as TDBGridEh).DataSource.DataSet).Sort:='';

    end;

  smUpEh:

    begin

      Column.Title.SortMarker:=smDownEh; //降序标志

      TCustomADODataSet((Sender as TDBGridEh).DataSource.DataSet).Sort:=Column.FieldName+' DESC';

    end;

end;

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

DBGridEh1.Align:=alTop;

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值