Problemas com uso de campo agregado com relacionamento mestre-detalhe
Como eu resolveria meu problema, com conjunto de dados fazendo mestre-detalhe, onde no meu cenário preciso somar o total de parcelas de uma determina conta, onde a multiplicidade é de n parcelas para 1 conta.
O que pude perceber é o seguinte: sem utilizar filtros no conjunto mestre, ao trocar a posição do curso para o outro registro a soma que é feita no campo agregado é em cima de todo o conjunto de dado existente no banco de dados, e não obedecendo a regra de mestre-detalhe pelo masterfield que é associado com a pk do conjunto mestre e uma fk no detalhe.
Somente consigo resolver este problema com refresh no conjunto detalhe após a trocar do cursor para outro registro.
Como poderei resolver isto sem ter que toda vez que trocar o registro refrescar o conjunto detalhe.
Detalhe: Estou usando a engine dbexpress (SQL) com componentes do data access (ClientDataSet, Provider e DataSource) e componentes data aware da paleta data controls.
O que pude perceber é o seguinte: sem utilizar filtros no conjunto mestre, ao trocar a posição do curso para o outro registro a soma que é feita no campo agregado é em cima de todo o conjunto de dado existente no banco de dados, e não obedecendo a regra de mestre-detalhe pelo masterfield que é associado com a pk do conjunto mestre e uma fk no detalhe.
Somente consigo resolver este problema com refresh no conjunto detalhe após a trocar do cursor para outro registro.
Como poderei resolver isto sem ter que toda vez que trocar o registro refrescar o conjunto detalhe.
Detalhe: Estou usando a engine dbexpress (SQL) com componentes do data access (ClientDataSet, Provider e DataSource) e componentes data aware da paleta data controls.
Filipe Sousa
Curtidas 0
Respostas
Marco Salles
13/06/2012
Num entendi
Vc esta dizendo que o Agreggate esta somando todos os registros e não somente o registro do detalhe ??
seria isto ??
Mas de qualquer modo pesquise por Agrupmamento de aggregates
Vc esta dizendo que o Agreggate esta somando todos os registros e não somente o registro do detalhe ??
seria isto ??
Mas de qualquer modo pesquise por Agrupmamento de aggregates
GOSTEI 0
Filipe Sousa
13/06/2012
Isso, o campo agregado faz a soma de todos valores de todos registros da tabela, não os registros que fazem mestre-detalhe.
Tentei implementar o agrupamento de campo agregado, criei um índice no clientdataset detalhe, apontei o campo agregado para o índice mas estou fazendo algo de errado e não sei corrigir.
Quando aponto o campo agregado para o índice, o expressão do campo agregado não mais é aplicada, é como se setasse ele como inativo.
Alguma sugestão ai ?
Tentei implementar o agrupamento de campo agregado, criei um índice no clientdataset detalhe, apontei o campo agregado para o índice mas estou fazendo algo de errado e não sei corrigir.
Quando aponto o campo agregado para o índice, o expressão do campo agregado não mais é aplicada, é como se setasse ele como inativo.
Alguma sugestão ai ?
GOSTEI 0
Marco Salles
13/06/2012
So uma dúvida , vc esta utilizando NestedDataSet para fazer o Mestre / Detalhe ???
GOSTEI 0
Filipe Sousa
13/06/2012
nossa brother, que dificuldade para entender meu problema, sim estou fazendo NestedDataSet.
GOSTEI 0
Filipe Sousa
13/06/2012
caramba cara...ninguém será capaz de resolver este probleminha meu ???
Não é possível isso.
Não é possível isso.
GOSTEI 0
Eduardo Silva.
13/06/2012
nossa brother, que dificuldade para entender meu problema, sim estou fazendo NestedDataSet.
A educação é o que resta depois de se ter esquecido tudo o que se aprendeu na escola.
(ALBERT EINSTEIN)
GOSTEI 0
Filipe Sousa
13/06/2012
Obrigado pela ajuda e força de vocês do blog, vejo que se um dia precisar de uma ajuda técnica de vocês será difícil conseguir por parte de vocês, falo isto pois tinha urgência com este problema e vocês claro muito solícitos atenderam ao meu chamado.
Agradeço de qualquer forma.
Agradeço de qualquer forma.
GOSTEI 0
Carlos Júnior
13/06/2012
Não vejo porque você esta tendo dificuldade de fazer o campo agregado respeitar o mestre-detalhe para fazer o calculo. Uso campos DataSetFields e consigo fazer isso sem nenhum problema.
GOSTEI 0