Problemas com Operações

18/03/2018

0

Estou enfrentando um problema ao fazer operações simples como:

    dmCantina.ztrCaixas_saldo_total.Value :=   dmCantina.ztrCaixas_saldo_total.Value +  FieldByName('Total').Value;


Ele simplesmente dá um valor exorbitante exemplo ta com 50 o saldo total ai vou adicionar mais 30 no Total vai para 110 ao invés de ir para 80

Segue o Código completo abaixo:

     Params[0].Value := dsVenda.DataSet.FieldByName('v_id').Value;
    Open;
    dsVenda.DataSet.Edit;
    dsVenda.DataSet.FieldByName('v_total').Value := FieldByName('Total').Value;

    if dmcantina.ztrCaixa.locate ( 's_id', dmCantina.ztqrCaixaids_caixa_aberturaid.Value, []) then
    begin
    dmcantina.ztrCaixa.Active;
    dmcantina.ztrCaixa.Edit;
    dmCantina.ztrCaixas_saldo_total.Value :=   dmCantina.ztrCaixas_saldo_total.Value +  FieldByName('Total').Value;
    dmcantina.ztrCaixa.Post;
    end;
Michel

Michel

Responder

Post mais votado

19/03/2018

Michel
o Active você tem que dar antes de fazer o Locate, caso contrário irá apontar para o primeiro item da tabela, e não mais o que você consultou.

Params[0].Value := dsVenda.DataSet.FieldByName('v_id').Value;
Open;
dsVenda.DataSet.Edit;
dsVenda.DataSet.FieldByName('v_total').Value := FieldByName('Total').Value;
dmcantina.ztrCaixa.Active; 
if dmcantina.ztrCaixa.locate ( 's_id', dmCantina.ztqrCaixaids_caixa_aberturaid.Value, []) then
begin
dmcantina.ztrCaixa.Edit;
dmCantina.ztrCaixas_saldo_total.Value :=   dmCantina.ztrCaixas_saldo_total.Value +  FieldByName('Total').Value;
dmcantina.ztrCaixa.Post;
end;

Luiz Vichiatto

Luiz Vichiatto
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar