ClientDataSet - criando aggregates em runtime |
Top Previous Next |
// para este exemplo eu criei um client com 3 campos GRUPO, SUBGRUPO e NOME // um indice INDICE pelos 3 campos nesta mesma ordem // e quando clicado no BitBtn1 o client já está criado e ativo
var Grupo, SubGrupo: TAggregate;
procedure TForm1.BitBtn1Click(Sender: TObject); begin Grupo := TAggregate.Create(Tb.Aggregates, Tb); Grupo.AggregateName := 'agrupo'; Grupo.Expression := 'count(grupo)'; Grupo.Active := False; Grupo.GroupingLevel := 1; Grupo.IndexName := 'indice';
SubGrupo := TAggregate.Create(Tb.Aggregates, Tb); SubGrupo.AggregateName := 'asubgrupo'; SubGrupo.Expression := 'count(subgrupo)'; SubGrupo.Active := False; SubGrupo.GroupingLevel := 2; SubGrupo.IndexName := 'indice';
Grupo.Active := True; SubGrupo.Active := True; Tb.AggregatesActive := True; end;
// exibir valor dos agregados procedure TForm1.BitBtn2Click(Sender: TObject); begin Caption := Grupo.Value + ' - ' + SubGrupo.Value; end;
end.
|