Campo Aggregate somando novamente ao indexar

Delphi

11/10/2012

Bom dia a todos, li vários posts, mas não achei anda referente a isso.

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

Henrique Rodrigues

Curtidas 0

Respostas

Marcos Iwazaki

Marcos Iwazaki

11/10/2012

isso é realmente estranho...

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
Kelly Pavan

Kelly Pavan

11/10/2012

Achaste alguma solução? Estou com esse mesmo problema e quase enlouquecendo...
GOSTEI 0
Renato Rubinho

Renato Rubinho

11/10/2012

Kelly,

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
Thiago Santana

Thiago Santana

11/10/2012

Bom Henrique tem que vê a forma como você está filtrando. Pois caso a filtragem não esteja sendo efetuada no objeto de consulta o campo calculado irá se perder nos valores após algumas consultas.
GOSTEI 0
Henrique Rodrigues

Henrique Rodrigues

11/10/2012

Eu abandonei o filter, estou usando uma nova consulta SQL no SQLDataSet
GOSTEI 0
POSTAR