Problemas com calculo na query
Olá Pessoal... estou com um probleminha aki..
estou desenvolvendo um tipo de extrato de banco pelo fortes report... do tipo
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:
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:
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...
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
Curtidas 0
Respostas
Leufmt
24/01/2007
O problema deve estar aqui:
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;
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
Thiago Coleti
24/01/2007
Caro leufmt ...estava lendo seu post... e pelo q percebi o q vc postou é identico ao q postei... não alterou nada....
na realidade.. aonde acha q eh o problema???
estou no aguardo.
obrigado..
na realidade.. aonde acha q eh o problema???
estou no aguardo.
obrigado..
GOSTEI 0
Leufmt
24/01/2007
Mudei sim...
Olhe com atenção
Olhe com atenção
GOSTEI 0
Thiago Coleti
24/01/2007
Olá leufmt...
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..
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