之前看到有人用事件的方法实现了合计列显示‘合计’的实现方法,但觉得比较复杂,需要多写一个过程。
对于动态创建字段的控件也比较难实现。看了源码,突发奇想,用Format格式字符串实现,特简单。方法一我没有实现成功,才找到方法二的。
方法一:
加一个Summary项,Column设为Grid的第一列,Kind设为skNone
在该Summary项的OnGetText事件中,输入:
procedure TFormExpense.tvExpenseTcxGridDBDataControllerTcxDataSummaryFooterSummaryItems2GetText(
Sender: TcxDataSummaryItem; const AValue: Variant; AIsFooter: Boolean;
var AText: String);
begin
AText := '合计:';
end;
方法二:
var
aCol:TcxGridDBColumn;
begin
//动态创建列
aCol := cxgrd1DBTableView1.CreateColumn;
//设置显示格式
aCol.Summary.FooterKind := skCount;
aCol.Summary.GroupFooterKind := skCount;
aCol.Summary.GroupKind := skCount;
aCol.Summary.FooterFormat := '合计';
aCol.Summary.GroupFooterFormat := '合计';
aCol.Summary.GroupFormat := '合计';
end;