DBGrideh 已设定了筛选与排序 ,确起不了作用,原因是需要在单元里面引用
uses
EhLibMTE,
如果单元里面没有引用 就启不了作用
DBGridEH列头筛选框启用方法
1,DBGridEh.STFilter.Visible := True
2,DBGridEh.STFilter.Local = True
3,DBGridEh.STFilter.Location=stflInTitleFilterEh | stflUnderTitleFilterEh
stflInTitleFilterEh --筛选显示在列头
stflUnderTitleFilterEh --筛选显示在列头下面一行
DBGridEH点击标题自动排序
1.在optioneh中设置:dghAutosortMarking:=True
2.设置DbGridEh的属性:(不一定总要设置,与使用的数据连接有关)
sortlocal:=True;
3.uses 单元
Ado------ehlibADo
TclientData------ehlibCDS
BDE ---------ehlibBDE
EhLibUniDAC
4.Column属性
ColumDefValues->Title->TitleButton设为TRUE
DBGridEH设置全部列为排序字段,具体属性设置如下:
BGridEh.ColumDefValues.Titles.TitleButton:=True;
DBGridEh.[OptionsEh].dghAutoSortMarking属性设为True
DBGridEh.SortLocal:=True;
属性设置必须设定好
DBGridEH1.DataSource=DataSource1;
DataSource1.DataSet=MemTableEh1;
MemTableEh1.DataDriver=ADODataDriverEh1;
ADODataDriverEh1.ProviderDataSet=FDQuery1;
FDQuery1.Connection=FDConnection1;
如何实现统计
DBGrideh1.FooterRowCount:=1;//新添加一行脚注
DBGrideh1.SumList.Active:=true;
在列属性里:
Footers-新建 ValueType FieldName
DBGridEh1.Columns[3].Footers.Add;
DBGridEh1.Columns[3].Footers[1].ValueType:=fvtFieldValue; //字段值
DBGridEh1.Columns[3].Footers[1].FieldName:='合同号';
DBGridEh1.Columns[3].Footers[1].Font.Style:=[fsBold];
DBGridEh1.Columns[3].Footers[1].Font.Color:=clBlue;
DBGridEh1.SumList.Active:=True;
第一步:首先将dbgrideh的一个页脚数属性FooterRowCount设置为 1;
第二步:再将dbgrideh的属性中的sumlist中的Active 设置为 True;
第三步:打开dbgrideh的字段列表;选择需要求和的字段,有个属性Footer下有 FieldName是求和的字段; ValueType是操作的类型;(fvtSum 求和; fvtAvg 平均值; fvtCount 记录数; fvtStaticText 静态文本; fvtFieldValue 字段值 )