procedure Tform.gdPrnDrawFooterCell(Sender: TObject; Canvas: TCanvas;
  FooterCellRect: TRect; Field: TField; var FooterText: String;
  var DefaultDrawing: Boolean);
var
  AddUp:TAggregate;
  fSum : Double;
  SumTotal : Double;
  PrevRecord : TBookmark;
  TC : TClientDataSet;
begin
  if (Assigned(Field) and (
     (Field is TFMTBCDField) or
     (Field is TSmallintField) or
     (Field is TIntegerField) or
     (Field is TBCDField))) then begin
    TC :=TClientDataSet((Sender as TSMDBGrid).DataSource.DataSet);
    TC.AggregatesActive := True;
    Addup:=TAggregate.Create(TC.Aggregates,TC);
    Addup.Expression := 'Sum(['+Field.FieldName+'])';
    Addup.active:=True;
    if Addup.Value = null then begin
      fSum := 0;
    end else begin
      fSum := Addup.Value;
    end;
    FooterText := FormatFloat('#,0.00',fSum);
    Addup.Free;
  end;
end;

創作者介紹
創作者 Dream 的頭像
Jerry

Dream

Jerry 發表在 痞客邦 留言(0) 人氣( 318 )