cxGrid合计时忽略某些记录

方法由俊哥提供

    某些报表要求在Grid中进行分类小计,如下图:

合计时应将“小计”行忽略,否则数重复计算了。

第1步:定义一个合计过程

    procedure cxGrid1DBBandedTableView1DataControllerSummaryFooterSummaryItemsSummary(
      ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments;
      var OutArguments: TcxSummaryEventOutArguments);

 

procedure TfrmMIOMonthlyPlus.cxGrid1DBBandedTableView1DataControllerSummaryFooterSummaryItemsSummary(
  ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments;
  var OutArguments: TcxSummaryEventOutArguments);
var
  i : integer;
begin
  i := vartoint(ASender.DataController.Values[Arguments.RecordIndex, colFlag.Index]);    //colFlag列对应字段值 = 3时,即小计的记录
  if i = 3 then
    OutArguments.Value := 0;
end;

第2步:为合计事件邦定上面定义的过程

procedure TfrmMIOMonthlyPlus.aSummaryExecute(Sender: TObject);
begin
  cxGrid1DBBandedTableView1.DataController.Summary.FooterSummaryItems.OnSummary :=   

          cxGrid1DBBandedTableView1DataControllerSummaryFooterSummaryItemsSummary;
  inherited;
end;

注意:

        理论第2步可能忽略的,我们只需双击cxGrid1DBBandedTableView1.DataController.Summary.FooterSummaryItems.OnSummary事件并写上第1步过程中的代码就可以了,但不知什么原因达不到我们想的效果(没有忽略小计行),所以第2步还是要写上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值