Acumular valor campo Saldo

(system) #1

Bom dia!

Tenho uma tabela de caixa que tem 5 campos

MySQL: 5.0.51a:

idcaixa int(10)
cx_data date
cx_entrada float(9,2)
cx_saida float(9,2)
cx_saldo float(9,2)

Estou usando um form de consulta com filtro de datas , e preciso mostar o saldo no final. Tentei crir um campo de depois calcular {saldo} = {Saldo anterior}+ {cx_entrada} - {cx_Saida}, mas nao sei como fazer para buscar o saldo anterior , alguem poderia ajudar.
Obrigado.

(Rodrigo Lins) #2

Olá,

Você possui esse ‘Saldo Anterior’ armazenado em uma tabela, correto?

Você precisará utilizar a macro sc_lookup , para fazer um select na tabela e retornar este valor.

Exemplo da macro:

sc_lookup(ds, “SELECT Nome FROM tb_clientes WHERE cpf = ‘{cpf}’”);

$resultado = {ds[0][0]};

Qualquer dúvida, tem no webhelp do scriptcase a explicação como funciona o sc_lookup.

Rodrigo Lins.

(system) #3

Boa noite Rodrigo !

Eu fiz o recomendado mas a macro só busca o primeiro registro onde está armazenado o saldo , como faço para ele buscar sempre o ultimo registro

Abaixo comandos usados :

sc_lookup(ds, "SELECT cc_saldo FROM contacorrente ");

$resultado = {ds[0][0]};

{saldo} = $resultado + {cc_entrada} - {cc_saida};

Obrigado!

(Rodrigo Lins) #4

Opa,

Creio que neste caso esteja faltando um WHERE neste seu select, geralmente existe para identificar qual o registro que estamos querendo, por exemplo, o saldo do cliente, então teria que fazer algo parecido com isto a seguir:

sc_lookup(ds, “SELECT cc_saldo FROM contacorrente WHERE cliente = ‘{codigo_cliente}’”);

Onde o texto que está entre chaves seria o código que virá da tela (do formulário) seria uma variável… E dessa maneira ele irá trazer o registro corretamente.

Mas, você poderia utilizar no SQL algo como o MAX… Mas, só se a regra do sistema seja desta maneira não sei… Mas, creio que em algum momento irá retornar registros errados…

Veja direitinho a regra de negócio.

Espero ter ajudado.

Rodrigo Lins.