UNIGUI-DBGRID的统计行的使用

关键步骤: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;

相关文章
相关标签/搜索