Fórum Problemas com calculo na query #336713
24/01/2007
0
estou desenvolvendo um tipo de extrato de banco pelo fortes report... do tipo
_______________ saldo inicial = R$ 1000,00 _____________________ Operação Tipo Valor R¬ Saldo Final Compra Debito 100,00 900,00 Emprestimo Debito 80,00 820,00 Venda Credito 200,00 1020,00 _____________________________________________
os campos (operação, tipo e valor) fazem parte da tabela então estão ligado direto na query.... já o campo saldo final é um campo caculated q criei e estou mandando fazer o calculo no evento onCalcFields da query.. como o codigo:
if tipo = Debito then querycampo.value := saldoanterior - queryvalor.value; saldoanterior := querycampo.value; else querycampo.value := saldoanterior - queryvalor.value saldoanterior := querycampo.value; end;
o estranho eh q ele calcula o valor do primeiro registro 2 vezes, somente do 1º registro, os outro ele faz o calculo certo... ex:
_______________ saldo inicial = R$ 1000,00 _____________________ Operação Tipo Valor R¬ Saldo Final Compra Debito 100,00 800,00 Emprestimo Debito 80,00 720,00 Venda Credito 200,00 920,00 _____________________________________________
no primeiro registro ele fez 1000-100-100 retornou o saldo final errado, prejudicando todo o saldo final....
alguem tem alguma idéia o pq disso..
estou no aguardo.. obrigado...
Thiago Coleti
Curtir tópico
+ 0Posts
24/01/2007
Leufmt
if tipo = Debito then
querycampo.value := saldoanterior - queryvalor.value;
saldoanterior := querycampo.value;
else
querycampo.value := saldoanterior - queryvalor.value
saldoanterior := querycampo.value;
end;
Acho que deve ser assim
if tipo = Debito then
querycampo.value := saldoanterior - queryvalor.value;
saldoanterior := querycampo.value;
else
querycampo.value := saldoanterior + queryvalor.value
saldoanterior := querycampo.value;
end;
Gostei + 0
25/01/2007
Thiago Coleti
na realidade.. aonde acha q eh o problema???
estou no aguardo.
obrigado..
Gostei + 0
25/01/2007
Leufmt
Olhe com atenção
Gostei + 0
25/01/2007
Thiago Coleti
reparei bem e vi q vc trocou o sinal de - por + no else...
mais no meu post isso foi um erro de digitação meu..... no meu código está igual o seu.....
o problema eh q ele executa ou o if ou o else (dependendo se for DEBITO ou CREDITO) duas vezes no primeiro registro da query....
isso no evento onCalcFields da query..
P.S. valew por corrigir nem vi q tinha digitado errado..
tem alguma idéia do pq desse problema???
obrigado pela ajuda..
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)