Pessoal, possuo uma tabela de Caixa que possue os seguintes campos
Data  HIstorico  Historicod  Complemento, Entrada Saída e Saldo

ela tem 14.000 registros deste inicio de 2006.
Cada vez que faço um lançamento, ela tem que atualizar o saldo da data do 
lançamento endiante, ou seja, tem que aceitar fazer lançamento do mes 
corrente.... Porem estou com dificuldades para fazer a rotina de atualização do 
saldo em sql, ai usei uma query e uma table... no meu sistema antigo com 
paradoz e table funcionava perfeitamente, mas agora que tenho que fazer em sql, 
ja que a table não ordena por data, complicou... segue abaixo a rotina, se 
alguem puder melhorar ela ou uma forma melhor de fazer agradeço

procedure tfrmcaixa.calculasaldo;
var valor : currency;
begin
     tbcaixa.refresh;
     if querycaixa.recordcount = 1 then
        begin
             tbcaixa.locate('Registro',querycaixa['Registro'],[]);
             tbcaixa.edit;
             tbcaixa['Saldo'] := querycaixa['Entrada'] - querycaixa['Saida'];
             tbcaixa.post;
             querycaixa.refresh;
             label5.caption := 'SALDO: 
'+formatfloat('###,##0.00',querycaixa['Saldo']);
        end
     else
         begin
              querycaixa.prior;
              if (querycaixa['Saldo'] = null) or (querycaixa.bof) then
                 begin
                      tbcaixa.locate('Registro',querycaixa['Registro'],[]);
                      tbcaixa.edit;
                      tbcaixa['Saldo'] := querycaixa['Entrada'] - 
querycaixa['Saida'];
                      tbcaixa.post;
                      querycaixa.refresh;
                 end;
              valor := querycaixa['Saldo'];
              querycaixa.next;
              while not querycaixa.eof do
                    begin
                         tbcaixa.locate('Registro',querycaixa['Registro'],[]);
                         tbcaixa.edit;
                         tbcaixa['Saldo'] := 
valor-querycaixa['Saida']+querycaixa['Entrada'];
                         tbcaixa.post;
                         querycaixa.refresh;
                         valor := querycaixa['Saldo'];
                         querycaixa.next;
                    end;
         end;
         label100.caption := 'SALDO: 
'+formatfloat('###,##0.00',querycaixa['Saldo']);


Att

Charles A. Chiodi
HNS Informática

[As partes desta mensagem que não continham texto foram removidas]

Responder a