我有把cxGrid1DBTableView1->optionsview->Footer 设为True 
同时在cxGrid1DBTableView1->DataController->Summary设置FooterSummaryItems,其中colum选则要求和的列,kind选择sksum,fieldname我填的是列明
但是为什么执行后没办法把求和的结果展示出来?看来看去设置的也都没有问题啊
求大家帮帮忙
    

解决方案 »

  1.   

    procedure TDecxGridDBBandedTableView.SetColGroupInfo(
       var col: TDecxGridDBBandedColumn; FooterKind: TcxSummaryKind;CaseFooter:Boolean);
    var   tempstr1,tempstr2,tempFooterFormat,tempGroupFooterFormat,tempGroupFormat:string;
    begin
      if Assigned(col) then
      begin
        tempstr2:=EmptyStr;
        if (Assigned(col.Properties)) then
        begin
          if (col.Properties is TcxCalcEditProperties) then
          begin
            tempstr2:=TcxCustomTextEditProperties(col.Properties).DisplayFormat;
          end;
        end;
        DataController.Summary.BeginUpdate;
        try
          case FooterKind of
            skCount:
            begin
              tempstr1:=('记录数:#0条');
              tempFooterFormat     :=tempstr1;
              tempGroupFooterFormat:=tempstr1;
              tempGroupFormat      :=tempstr1;
            end;
            skSum:
            begin
              tempstr1:=('总计:'+tempstr2);
              tempFooterFormat      :=tempstr1;
              tempstr1:=('小计:'+tempstr2);
              tempGroupFooterFormat :=tempstr1;
              tempGroupFormat      :=tempstr1;
            end;
            skMax:
            begin
              tempstr1:=('最大值:'+tempstr2);
              tempFooterFormat     :=tempstr1;
              tempGroupFooterFormat:=tempstr1;
              tempGroupFormat      :=tempstr1;
            end;
            skMin:
            begin
              tempstr1:=('最小值:#'+tempstr2);
              tempFooterFormat     :=tempstr1;
              tempGroupFooterFormat:=tempstr1;
              tempGroupFormat      :=tempstr1;
            end;
            skAverage:
            begin
              tempstr1:=('平均值:#'+tempstr2);
              tempFooterFormat     :=tempstr1;
              tempGroupFooterFormat:=tempstr1;
              tempGroupFormat      :=tempstr1;
            end;
          end;
          //col.Summary.GroupKind:=FooterKind;       //分组后的主记录中
          if CaseFooter then
            begin
              col.Summary.FooterKind:=FooterKind;
              if FooterKind = skNone then
                col.Summary.FooterFormat := ''
              else
                col.Summary.FooterFormat :=tempFooterFormat;
            end //最下方的状态栏
          else
          begin
            col.Summary.GroupFooterKind:=FooterKind; //分组后的各主记录状态栏
            if FooterKind = skNone then
              col.Summary.GroupFooterFormat := ''
            else
              col.Summary.GroupFooterFormat :=tempGroupFooterFormat;
          end;      (*if FooterKind = skNone then
          begin
            col.Summary.GroupFooterFormat:= ' ';
            col.Summary.FooterFormat := ' ';
          end
          else
          begin
            {if tempGroupFormat<>'' then
            begin
              if FooterKind = skCount then
                col.Summary.GroupFormat:=tempGroupFormat
              else
                col.Summary.GroupFormat:=col.Caption+' '+tempGroupFormat;
            end;}
            col.Summary.GroupFooterFormat:=tempGroupFooterFormat;
            col.Summary.FooterFormat :=tempFooterFormat;
          end;  *)
        finally
          DataController.Summary.EndUpdate;
        end;
      end;
    end;这是我写的设置合计的函数,你看下对你有用不
      

  2.   

    cxGridList.GetColumnByFieldName('字段').Summary.FooterKind := skSum;
      

  3.   

    请把代码用格式工具处理一下,看着就不舒服啊。
    下面的代码不完整,仅供参考,自己查找问题      AItem := TcxGridDBTableSummaryItem(AcxGridView.DataController.Summary.FooterSummaryItems.Add);
          AItem.Column := AcxGridView.GetColumnByFieldName(AFieldName);
          AItem.Kind := SumKind;
          AItem.Format := AFormat;
    http://hi.baidu.com/lemtech
      

  4.   

    第一步:cxGrid1DBTableView1->optionsview->Footer 设为True 
    第二步:直接点表格的Customize按钮
    colum选择要求和的列,kind选择sksum,fieldname留空就可以了