Fórum Soma de um Campo em IBX, como vocês fazem? #333613

24/11/2006

0

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


Titanius

Titanius

Responder

Posts

24/11/2006

Marco Salles

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 ....



Responder

Gostei + 0

24/11/2006

Titanius

[quote:ddb71e2afa=´Marco Salles´]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 ....
[/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


Responder

Gostei + 0

24/11/2006

Marco Salles

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...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar