Fórum Saldo em DBGrid #224236

03/04/2004

0

Como faço para apresentar um campo com o saldo acumulado de uma conta corrente em uma edicao tipo DBGrid sem usar Stored Procedures, apenas com SQL ou eventos do DBGrid ou do DataSet ? (para DBF ou Paradox) Colunas DATA,HISTORICO,DEBITOS,CREDITOS,SALDO.


Luizneto

Luizneto

Responder

Posts

03/04/2004

Hcaixeta

Olá Amigo.

Usando Paradox esperimente fazer assim:


procedure TfrmCaixa.Button1Click(Sender: TObject);
var
Saldo:Variant;
begin

Table1.First;
Table1.Edit;
Table1.FieldByName(´Saldo´).Value :=Table1.FieldByName(´DEBITO´).Value - Table1.FieldByName(´CREDITO´).Value;
Saldo:= Table1.FieldByName(´Saldo´).Value;
Table1.Next;

While Not Table1.Eof Do
Begin
Table1.Edit;
Table1.FieldByName(´Saldo´).Value := Saldo + Table1.FieldByName(´DEBITO´).Value - Table1.FieldByName(´CREDITO´).Value;
Saldo:= Table1.FieldByName(´Saldo´).Value;
Table1.Next;
end;

end;

Foi um quebra galho que consegui fazer!
T+
Humberto Duarte


Responder

Gostei + 0

19/04/2004

Luizneto

Saldo é uma coluna do DBGrid e tem que ser mostrada dinamicamente, pois eu posso estar no dia 20 e fazer um lancamento no dia 10 o que teria que forcar o recalculo dos saldos ate o dia 20 de novo.


Responder

Gostei + 0

19/04/2004

Marco Salles

pois eu posso estar no dia 20 e fazer um lancamento no dia 10 o que teria que forcar o recalculo dos saldos ate o dia 20 de novo.

Eu acho que isto não é uma boa idéia...se for um livro caixa é mais [b:281d48c57a]aconselhável [/b:281d48c57a]um lançamento[b:281d48c57a] fora data correta [/b:281d48c57a]do que uma [b:281d48c57a]edição [/b:281d48c57a]nos registros anteriores..[b:281d48c57a]Não é prático, não é seguro e não é permitido...[/b:281d48c57a]
[b:281d48c57a]Não é Prático Porque [/b:281d48c57a]:?: Pelo motivo exposto por voce mesmo...Uma correção em um Campo Implica em correções em todos os campos Posteriores...
[b:281d48c57a]Não é seguro Porque [/b:281d48c57a]:?: dependendo da utilidade do programa ,Pode gera possíveis Fraudes ou mesmo roubo por pessaos de mã fé...Fica difícil controlar...em se tratando de 20 registro tudo bem, mas a coisa complica quanto o banco de dados tem muita informação...em posse disto, o larápio altera a base de dados do ano retrassado, inventando por exemplo uma despesa que não existiu...Quem de via de direito vai conferir registros antigos :(
[b:281d48c57a]Não é permitido Porque [/b:281d48c57a]:?: Isto já é mais ´técnico´ do que qualquer outra coisa. Um livro[b:281d48c57a] caixa [/b:281d48c57a]feito a mão , não pode ter [b:281d48c57a]rasuras[/b:281d48c57a], e uma [b:281d48c57a]edição[/b:281d48c57a] e uma rasura ´elegante´...Mas se de posse de todas estas opiniões não se deu por vencido, ou este definitivamente, não for o seu caso, vamos tentar programar para resolver o problema:
declare quatro variáveis
Var
 SaldoAnterior,DebitoAnterior,CreditoAnterior,diferençaSaldo:Tipo
no método edit Faça:
SaldoAnterior:=Saldo;
 DebitoAnterior:=Debito;
 CreditoAnterior:=Credito;

Faça as alterações Que lhe couver...Na Hora De Gravar No Registro Alterado
Saldo:=SaldoAnterior-(Debito-debitoAnterior)+  (Credito-CreditoAnterior);
Grave
DiferencaSaldo:=Saldo-SaldoAnterior;
Crie agora um [b:281d48c57a]Método[/b:281d48c57a] Para Todos os [b:281d48c57a]Registros Posteriores [/b:281d48c57a]a Este Registro altere o seu [b:281d48c57a]campo saldo[/b:281d48c57a]... O Novo Valor do Campo Saldo é
Saldo:=Saldo+DiferencaSaldo;

A Dificuldade agora talves seja criar este método, para selecionar estes registros posteriores, se não conseguir poste para gente...


Responder

Gostei + 0

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

Aceitar