a.点标题排序:
1.eh的optionsEh 的dghAutoSortMarking True
2 eh的sortlocal true
3.列的title的toolbutton为true
4。eh的optionsEh 的dghMultiSortMarking True 多个字段一起排(按CTRL+Mouse)
5.uses加相应的驱动ehlibado/ehlibbde
b.模糊过滤:
uses ehlibado;
if Assigned(DataSource) and Assigned(DataSource.DataSet) then
DataSource.DataSet.Filtered :=true;
STFilter.Local :=True;
STFilter.Visible :=True;
//加过滤下拉列表
for i:=0 to Columns.Count-1 do
Columns[i].STFilter.ListSource :=DataSource;
//加排序列表菜单
列的dropdownSizing
c.斑马线
if Assigned(DataSource) and Assigned(DataSource.DataSet) then
begin
if DataSource.DataSet.IsSequenced then
begin
OddRowColor :=clRed;
EvenRowColor:=clYellow;
end
else begin
aDBGridEH.OnDrawColumnCel//处理
end;
end;
end;
procedure DBGridEhDrawColumnCell(Self: TObject;Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if (gdSelected in State) then
begin
end
else if (Rect.Top = (Sender as TDBGridEh).CellRect((Sender as TDBGridEh).Col,(Sender as TDBGridEh).Row).Top) and (not (gdFocused in State) or not (Sender as TDBGridEh).Focused) then
begin
(Sender as TDBGridEh).Canvas.Brush.Color := clblack;//选择行
(Sender as TDBGridEh).Canvas.Font.Color := clWhite;
end
else
begin
(Sender as TDBGridEh).Canvas.Brush.Color := clYellow;//奇行
(Sender as TDBGridEh).Canvas.Font.Color := clWindowText;
end;
if (not (gdSelected in State)) and ((((Sender as TDBGridEh).DataSource.DataSet.RecNo) mod 2) =0) then
begin
(Sender as TDBGridEh).Canvas.Brush.Color := clred;//偶行
(Sender as TDBGridEh).Canvas.Font.Color := clWindowText;
end;
// (Sender as TDBGridEh).Canvas.FillRect(Rect);
(Sender as TDBGridEh).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
d.统计栏
e.保存grid位置
SaveGridLayoutIni(IniFileName,GetFullName(TWinControl(Sender)),true);
RestoreGridLayoutIni(IniFileName,vSectionName,[grpColIndexEh, grpColWidthsEh, grpSortMarkerEh, grpColVisibleEh,grpDropDownRowsEh,grpDropDownWidthEh]);