Fórum Campo Aggregate somando novamente ao indexar #426001
11/10/2012
0
Usando DBX, no ClientDataSet fiz um campo Aggregate que soma uma coluna com valores numeric.
Exibo os dados em uma DBGrid.
Uso o DataSet.Filter para filtrar minha pesquisa, nisso o campo Aggregate é atualizado.
Fiz uma rotina para indexar pelas colunas da grid.
Nesse ponto ele soma novamente ao valor que já tinha.
Exemplo
a soma de uma seleção foi de 20,00
se eu mudar a ordenação do campo ela fica 40,00
se mudar novamente ela fica 60,00
Pensei em zerar o valor dele antes de indexar, mas não encontrei como fazer isso. Até achei um tópico mas quem perguntou não chegou a lugar algum.
Grato
Henrique Rodrigues
Curtir tópico
+ 0Posts
11/10/2012
Marcos Iwazaki
as vezes eu uso o aggregate tbm e funciona normal.
tenta fazer o seguinte. criar uma apliação nova liga com uma tabela bem simples com 3 registros.
e testa o agrregate nele...
se mesmo assim der erro...
eu não sei o que poderia ser, talvez a versão do delphi estar com bug.
se quiser depois de fazer este teste me passar esse projeto teste p eu debugar aqui.
flw.
Gostei + 0
06/03/2015
Kelly Pavan
Gostei + 0
09/03/2015
Renato Rubinho
Não sei a solução ideal, mas o que faço para resolver isso é, antes de mudar a indexação, colocar um filter que não traga nenhum registro (Ex: COD_CLIENTE = 0 sendo que todos os COD_CLIENTES são superiores a zero), mudo a indexação e depois removo o filter.
Ao retornarem os registros após a remoção do filter parece que zera o aggregate e os valores ficam corretos.
Acredito que ao mudar a ordem, o aggregate se perde no reposicionamento dos registros.
Gostei + 0
09/03/2015
Thiago Santana
Gostei + 0
09/03/2015
Henrique Rodrigues
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)