cxgrid按条件计算合计值

在Footer的第一列显示[合计:] 
加一个Summary项,Column设为Grid的第一列,Kind设为skNone 
在该Summary项的OnGetText事件中,输入: 
procedure TFormExpense.tvExpenseTcxGridDBDataControllerTcxDataSummaryFooterSummaryItems2GetText( 
Sender: TcxDataSummaryItem; const AValue: Variant; AIsFooter: Boolean; 
var AText: String); 
begin 
AText := '合计:'; 
end; 

按条件汇总: 
在TableView的DataController->Summary->FooterSummary->OnSummary事件中,输入: 
procedure TFormExpense.tvExpenseDataControllerSummaryFooterSummaryItemsSummary( 
ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments; 
var OutArguments: TcxSummaryEventOutArguments); 
begin 
//得到字段名 TcxDBDataSummaryItem(Arguments.SummaryItem).FieldName; 
if (ASender.DataController.Values[Arguments.RecordIndex, tvExpenseLevel.Index] > 1) //只统计Level列=1的值 
and (TcxDBDataSummaryItem(Arguments.SummaryItem).Kind = skSum) then 
OutArguments.Value := 0; //Level > 1的统计值设为0 
end;

posted on 2021-01-27 10:33  癫狂编程  阅读(231)  评论(0)    收藏  举报

导航

好的代码像粥一样,都是用时间熬出来的