Fórum AggregateField #373124
04/08/2009
0
com where no sql, qdo dou OPEN, a soma está tudo OK!
Mas na tela tem opção do usuário filtrar (em cache no clientdataset) pelo OnFilterRecord, qdo existe esse filtro os valores dos campos AggregateField não atualizam.
Alguém sabe o q posso fazer pra resolver isso?
Jperim
Curtir tópico
+ 0Posts
04/08/2009
Vitor Rubio
Se for calculado use o tipo internalcalc ao invez de calculated field.
Não tenho certeza, preciso testar, mas acredito que se o agregate field for uma soma de um outro campo, um total, por exemplo, ele vai somar apenas os campos visiveis no cds. Então se você filtrar, ele vai somar menos parcelas.
Você tem duas opções: Trazer o total já somado do sql, o que pode ser um custo para o seu servidor de banco de dados, mas um custo a menos para o client. Ou você pode usar clonedataset e criar uma cópia em memoria de seu dataset. Assim você pode fazer calculos em um enquanto faz filtros em outro.
Gostei + 0
04/08/2009
Jperim
Ele está trazento o Valor Total corretamente pela expression SUM().
O q estou querendo saber é se qdo vou filtrando o ClientDataSet pelo OnFilterRecord, esse campo vai sendo atualizado?
Pq comigo ele não está atualizando a soma.
Gostei + 0
04/08/2009
Vitor Rubio
Se bem que dado esse problema, é capaz de o OnFilterRecord executar antes do cálculo. Mas para ter certeza use o debugger.
Tente usar a propriedade Filter e filtered := true.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)