Soma de um Campo em IBX, como vocês fazem?
Olá amigos, gostaria da opinião de vocês que utilizam o IBX, estou com o seguinte problema:
Tenho um lançamento de pedido, onde tenho o corpo de pedido, e os itens do pedido. Pois bem, no corpo do pedido tenho o seguinte campo VALOR_PRODUTO, onde deverá ser gravado o valor total da soma de todos os itens deste pedido. No Itens, eu tenho o campo VALOR_TOTAL.
Ou seja, tenho que pegar a soma de todos os VALOR_TOTAL de cada item e somar, e jogar pro VALOR_PRODUTO.
Atualmente, eu faço o seguinte: ao sair do grid do Itens, eu dou um while na tabela de Itens, e somo o valores totais e jogo para a tabela de Pedido. funciona, mas só funciona depois que o usuario já preencheu os dados. Gostaria de fazer que ao ir preenchendo os itens, já fosse sendo calculado isso.
Como vocês fazem isso?
P.S.: Sei que no ClientDataSet tem uma opção para isso, porém esta não é uma opção para mim, pois para mudar, deverei mudar toda a estrutura do meu pedido. :wink:
Desde já agradeço
[]s
Tenho um lançamento de pedido, onde tenho o corpo de pedido, e os itens do pedido. Pois bem, no corpo do pedido tenho o seguinte campo VALOR_PRODUTO, onde deverá ser gravado o valor total da soma de todos os itens deste pedido. No Itens, eu tenho o campo VALOR_TOTAL.
Ou seja, tenho que pegar a soma de todos os VALOR_TOTAL de cada item e somar, e jogar pro VALOR_PRODUTO.
Atualmente, eu faço o seguinte: ao sair do grid do Itens, eu dou um while na tabela de Itens, e somo o valores totais e jogo para a tabela de Pedido. funciona, mas só funciona depois que o usuario já preencheu os dados. Gostaria de fazer que ao ir preenchendo os itens, já fosse sendo calculado isso.
Como vocês fazem isso?
P.S.: Sei que no ClientDataSet tem uma opção para isso, porém esta não é uma opção para mim, pois para mudar, deverei mudar toda a estrutura do meu pedido. :wink:
Desde já agradeço
[]s
Titanius
Curtidas 0
Respostas
Marco Salles
24/11/2006
eu lembro vagamente que eu ja fiz isso usando uma variavel de controle
Zerava esta variavel sempre que um registro mestre fosse aberto
e no tabela detalhe no evento onvalidade do campo eu ia somando
Variavel:=Variavel+ValorCampo;
e a cada variação este valor era mostrada em em Edit
Usando o clientDataSet , campo Agrregate e usando um filtro , para que , somente os registros do Realcionamentos , fossem computados , também daria , e não vejo em que isto interfere na estrutura .. Mas ....
GOSTEI 0
Titanius
24/11/2006
[quote:ddb71e2afa=´Marco Salles´]eu lembro vagamente que eu ja fiz isso usando uma variavel de controle
Olá Marco, obrigado pela resposta, era desta forma mesmo que eu faço, porém tenho que controlar tudo, se o cara edita o item (tenho que mudar o valor), se o cara exclui o item tenho que mudar o valor. Achei que tivesse um meio melhor do que isso..
Quanto ao CDS, nao posso mudar pois o pedido já está pronto, com controle de transacao e tudo, para mudar ficaria [b:ddb71e2afa]trabalhoso[/b:ddb71e2afa]. Nos próximo projetos irei usar o CDS, com certeza...
[]s
Zerava esta variavel sempre que um registro mestre fosse aberto
e no tabela detalhe no evento onvalidade do campo eu ia somando
Variavel:=Variavel+ValorCampo;
e a cada variação este valor era mostrada em em Edit
Usando o clientDataSet , campo Agrregate e usando um filtro , para que , somente os registros do Realcionamentos , fossem computados , também daria , e não vejo em que isto interfere na estrutura .. Mas ....
[/quote:ddb71e2afa]Olá Marco, obrigado pela resposta, era desta forma mesmo que eu faço, porém tenho que controlar tudo, se o cara edita o item (tenho que mudar o valor), se o cara exclui o item tenho que mudar o valor. Achei que tivesse um meio melhor do que isso..
Quanto ao CDS, nao posso mudar pois o pedido já está pronto, com controle de transacao e tudo, para mudar ficaria [b:ddb71e2afa]trabalhoso[/b:ddb71e2afa]. Nos próximo projetos irei usar o CDS, com certeza...
[]s
GOSTEI 0
Marco Salles
24/11/2006
Olá Marco, obrigado pela resposta, era desta forma mesmo que eu faço, porém tenho que controlar tudo, se o cara edita o item (tenho que mudar o valor), se o cara exclui o item tenho que mudar o valor. [b:3eedd10f4c]Achei que tivesse um meio melhor do que isso..[/b:3eedd10f4c]
[b:3eedd10f4c]Pode ser que tenha sim.. [/b:3eedd10f4c]Algo mais creativo do que trabalhar com os eventos BeforePost , BeforeEdit , beforeDelete , affterPost , affeterEdit;
AffeterPost , para controlar corretamente o valor desta variável...No mais eu so parti para esta linha de raciocineo por dois motivos:
Atualmente, eu faço o seguinte: ao sair do grid do Itens, eu dou um while
1)[b:3eedd10f4c] Voce dissse que no final usava um [b]While[/b:3eedd10f4c][/b]... Esta tecnica no meu entedimento é pior do que usar uma variavel de controle , alem de so ter o resultado no fim do processo:
mas só funciona depois que o usuario já preencheu os dados. Gostaria de fazer que [b:3eedd10f4c]ao ir preenchendo os itens[/b:3eedd10f4c], já fosse sendo calculado isso.
Como vocês fazem isso?
2)Porque voce queria em tempo Real e usando esta variavel de controle voce obtem isso...
GOSTEI 0