A especificação TClientDataSet Aggregates não é adicionada automaticamente ao criar um campo Aggregate
-
09-06-2019 - |
Pergunta
Preciso criar um Campo Agregado em um TClientDataSet, mas como dito na documentação:
Escolha OK.O campo agregado recém -definido é adicionado automaticamente ao conjunto de dados do cliente e sua propriedade agregados é atualizada automaticamente para incluir a especificação agregada apropriada.
Quando adiciono um novo campo agregado, a especificação agregada não é adicionada aos agregados do TClientDataSet, portanto não posso usar seu OnUpdateMethod.
Também tentei manipular o evento OnChange do meu novo Aggregate Field, mas ele não foi acionado.
Estou fazendo algo errado?Eu só quero ter um campo agregado e disparar um evento com tudo o que muda de valor.
Isso está quebrado no Delphi?Porque o que está na documentação não reflete o comportamento real.
editar:@Michal sznajder Estou usando Delphi 2007
Solução
Acho que você pode estar confuso entre os objetos TAggregate e TAggregateField, e a documentação do Delphi provavelmente não está ajudando.
Os objetos AFAICT e TAggregateField são automaticamente 'recalculados' e podem ser vinculados a controles com reconhecimento de dados como TDBText, mas não possuem nenhum evento OnUpdate.
Os objetos "TAggregate", por outro lado, possuem um evento OnUpdate, mas não podem ser vinculados a controles com reconhecimento de dados.
Isso pode ser esclarecedor: http://dn.codegear.com/article/29272
Outras dicas
Qual versão do Delphi?Acabei de experimentar o aplicativo D7 limpo e o TAggregateField foi adicionado.