Fórum Soma em SQL #193124
05/11/2003
0
Desde já agradeço por sua atenção.
Observe a sequencia abaixo:
Data Crédito Débito Saldo
01/11/2003 100,00 0,00 100,00
05/11/2003 100,00 0,00 200,00
10/11/2003 0,00 50,00 150,00
Quando faço um lançamento, verifico se o tipo de lançamento é a Crédito ou a Débito, Gravo o valor no campo correspondente e atualizo o saldo.
Meu problema é:
Quando entro com um lançamento com data retroativa, ou seja; 03/11/2003 tenho que recalcular todos os registros posteriores para acertar o saldo. Como consigo fazer isso através de SQL.
Utilizo Interbase com os Componentes IBDataSet, IBTransaction, IBDataBase.
m_gab. :?:
Observe a sequencia abaixo:
Data Crédito Débito Saldo
01/11/2003 100,00 0,00 100,00
05/11/2003 100,00 0,00 200,00
10/11/2003 0,00 50,00 150,00
Quando faço um lançamento, verifico se o tipo de lançamento é a Crédito ou a Débito, Gravo o valor no campo correspondente e atualizo o saldo.
Meu problema é:
Quando entro com um lançamento com data retroativa, ou seja; 03/11/2003 tenho que recalcular todos os registros posteriores para acertar o saldo. Como consigo fazer isso através de SQL.
Utilizo Interbase com os Componentes IBDataSet, IBTransaction, IBDataBase.
m_gab. :?:
M_gab
Curtir tópico
+ 0
Responder
Posts
06/11/2003
Luizfernando777
tenta fazer isso
CRIE NA QUERY UM CAMPO SALDO TIPO CURRENCY CALCULATED
var
Form2: TForm2;
Saldo : Currency = 0;
implementation
{$R *.dfm}
procedure TForm2.Query1CalcFields(DataSet: TDataSet);
begin
Query1Saldo.Value := (( Query1Credito.Value - Query1Debito.Value )+Saldo);
Saldo := Query1Saldo.Value;
end;
procedure TForm2.Query1BeforeOpen(DataSet: TDataSet);
begin
Saldo := 0;
end;
VC SEMPRE TERÁ QUE FECHAR E ABRIR (CLOSE OPEN NA QUERY),
PARA ATURALIZAR O SALDO
CRIE NA QUERY UM CAMPO SALDO TIPO CURRENCY CALCULATED
var
Form2: TForm2;
Saldo : Currency = 0;
implementation
{$R *.dfm}
procedure TForm2.Query1CalcFields(DataSet: TDataSet);
begin
Query1Saldo.Value := (( Query1Credito.Value - Query1Debito.Value )+Saldo);
Saldo := Query1Saldo.Value;
end;
procedure TForm2.Query1BeforeOpen(DataSet: TDataSet);
begin
Saldo := 0;
end;
VC SEMPRE TERÁ QUE FECHAR E ABRIR (CLOSE OPEN NA QUERY),
PARA ATURALIZAR O SALDO
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)