我想在动态的计算一下dxdbgrid某列的汇总值,然后还原.
begin
dxDBGrid1.ColumnByFieldName('Weight').SummaryFooterType:=cstSum;
dxDBGrid1.ColumnByFieldName('Weight').SummaryFooterFormat := ' 0.00';
edit4.text:=dxDBGrid1.ColumnByFieldName('Weight').SummaryFooterText;
dxDBGrid1.ColumnByFieldName('Weight').SummaryFooterType:=cstNone;
end;不行,为什么?还有一个问题,我觉得dxdbgrid汇总或什么的比较快,它内部的机制是怎么样了,能不能粗略的讲一下?(不想看源代码)
begin
dxDBGrid1.ColumnByFieldName('Weight').SummaryFooterType:=cstSum;
dxDBGrid1.ColumnByFieldName('Weight').SummaryFooterFormat := ' 0.00';
edit4.text:=dxDBGrid1.ColumnByFieldName('Weight').SummaryFooterText;
dxDBGrid1.ColumnByFieldName('Weight').SummaryFooterType:=cstNone;
end;不行,为什么?还有一个问题,我觉得dxdbgrid汇总或什么的比较快,它内部的机制是怎么样了,能不能粗略的讲一下?(不想看源代码)
上面有的
首先设showsummaryFooter为True;
之后你在要汇总的字段上设置一下
btGrid.SummaryGroupName := 'RecordCount';//一个grid为一个最好
btGrid.SummaryType := cstNone;//类型
btGrid.SummaryFooterType := cstSum;//求和
你在这个列的OnDrawSummaryFooter事件中
procedure TfrmBillBureauDraw.GetSumMoney(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; var AText: string; var AAlignment: TAlignment;
AFont: TFont; var AColor: TColor; var ADone: Boolean);
begin
FSumMoney:=AText;//这个就是你取得的值
end;
keyfield:=‘你的字段’;