关键步骤:html
一、设置DBGRID的summary.enabled:=trueurl
二、打开DBGRID的columns字段,设置DBGRID对应的column的showsummary:=true;orm
三、写入uniDBGRID.onColumnSummary事件:htm
procedure TframeCalBBU.UniDBGrid1ColumnSummary(Column: TUniDBGridColumn;blog
GroupFieldValue: Variant);事件
beginget
if sametext(column.FieldName,'BBU数量') orstring
sametext(column.FieldName,'总端口数') orim
sametext(column.FieldName,'RRU占用端口数') orimg
sametext(column.FieldName,'空余端口数') then
begin
//计算分组合计
if Column.AuxValue=NULL then Column.AuxValue:=0;
Column.AuxValue:=Column.AuxValue + Column.Field.AsInteger;
//计算总计,这个须要grandTotal时候用。
// if Column.AuxValues[1]=NULL then Column.AuxValues[1]:=0;
// Column.AuxValues[1]:=Column.AuxValues[1] + Column.Field.AsInteger;
end;
end;
四、写入UniDBGridSummaryResult事件:
procedure TframeCalBBU.UniDBGrid1ColumnSummaryResult(Column: TUniDBGridColumn;
GroupFieldValue: Variant; Attribs: TUniCellAttribs; var Result: string);
var
I : Integer;
F : Real;
begin
if sametext(column.FieldName,'BBU机房') then
result:='合计:'
else
begin
i:=Column.AuxValue;
Result:=Format('%d', [I]);
end;
Attribs.Font.Style:=[fsBold];
Attribs.Font.Color:=clNavy;
Column.AuxValue:=NULL;
end;
五、须要grandTotal事件时候,写入对应事件
procedure TframeCalBBU.UniDBGrid1ColumnSummaryTotal(Column: TUniDBGridColumn;
Attribs: TUniCellAttribs; var Result: string);
var
i:integer;
begin
if sametext(column.FieldName,'BBU机房') then
result:='所有总计:'
else
begin
i:=Column.AuxValues[1];
Result:=Format('%d', [I]);
Attribs.Font.Style:=[fsBold];
Attribs.Font.Color:=clGray;
end;
end;