使用ClientDataset 的统计功能要注意的几个问题
(1)设计期使用:
ClientDataSet.Aggregates[n].Actived:=True
ClientDataSet. Aggregates[n].IndexName:=’I_IDX’,按什么索引进行统计,该索引可以和
ClientDataSet.IndexName不一样,但ClientDataSet.IndexDefs中必须有此索引。
ClientDataSet.Aggregates[n].Groupinglevel:=1; 按索引中的哪些字段进行统计,其值不能大于
ClientDataSet.IndexDefs.Count。
ClientDataSet.AggregateActive:=True
(1)动态使用时:
设定ClientDataSet.AggregateActive:=True或设定ClientDataSet.Aggregatesd的各项属性之前ClientdataSet.Filter一定先设为“空”或将Filtered设为False。否则将引发错误。
ClientDataSet.Aggregates[n].Activey一定要设为True。
例:
Filtered:=False;
AggregatesActive:=False;
with Aggregates.Add do begin
AggregateName:='CKJE';
expression_r_r:='Sum(CKJE)';
IndexName:= 'I_IDX2';
GroupingLevel:=1;
Active:=True;
end;
AggregatesActive:=True;
Filtered:=True;
//调用
Filtered:=False;
AggregatesActive:=False;
for i:=0 to Aggregates.Count-1 do begin
Aggregates.Items[i].Active:=False;
Aggregates.Items[i].IndexName:='I_IDX2';
Aggregates.Items[i].GroupingLevel:=1;
Aggregates.Items[i].Active:=True;
end;
AggregatesActive:=True;
Filtered:=True;