URGENTE, preciso pra terminar um programa...

Delphi

21/02/2003

Para calcular o saldo preciso pegar a soma dos cheques de hoje, dos diversos de hoje, depositos hoje e o saldo de ontém...
Naum estou conseguindo puxar os valores pela data...estou trabalhando com três tabelas paradox, BDE...
PLEASE, dêm uma olhadinha nesse código e digam o que há de errado...ou o quê falta????

procedure TForm6.FormResize(Sender: TObject);
var
Data: String;
begin
Data:=DateToStr(DateTimePicker1.Date);
Total:=0;
Query1.First;
Query2.First;
Query3.First;
Deposito:=0;
Cheque:=0;
Diverso:=0;
While not Query1.Eof do
begin
// ParamByName(´dat´).AsDateTime:=DateTimePicker1.Date
begin
Deposito:=Query1Valor.Value;
Query1.Next;
end;
end;
//With Query1 do Begin
//close;
//sql.Clear;
//sql.Add(´select sum(valor) as valor where data=:dat´);
//open;
//End;
While not Query2.Eof do
begin
Cheque:=Query2Valor.Value;
Query2.Next;
end;
While not Query3.Eof do
begin
Diverso:=Query3Valor.Value;
Query3.Next;
end;
Total:=Table1Saldo_anterior.AsFloat+Deposito-(Cheque+Diverso);
DBedit1.Text:=FloatToStr(Total);
DBedit1.Text:=FormatFloat(´R$ #.´,Total);
end;
procedure TForm6.FormShow(Sender: TObject);
begin
DateTimePicker1.Date:=now;
end;

end.


Diana

Diana

Curtidas 0

Respostas

Anonymous

Anonymous

21/02/2003

Eu poderia sugerir algo diferente?

Crie as queries assim:
QueryCheques.SQL = ´select sum(campovalor) as totalcheques from tabelacheques where campodata = ´+strtodate(date);

QueryDepositos.SQL = ´select sum(campovalor) as totaldepositos from tabeladepositos where campodata = ´+strtodate(date);

QueryDiversos.SQL = ´select sum(campovalor) as totaldiversos from tabeladepositos where campodata = ´+strtodate(date);

Depois:
SaldoHoje := SaldoAnterior + QueryDepositos.FieldByName(´TOTALDEPOSITOS´).AsFloat - (QueryCheques.FieldByName(´TOTALCHEQUES´).AsFloat + QueryDiversos.FieldByName(´TOTALDIVERSOS´).AsFloat);


A propósito, no seu código tem um erro nas somas dentro dos WHILE´s:
While not Query1.Eof do
begin
Deposito:=Deposito+Query1Valor.Value;
Query1.Next;
end;
While not Query2.Eof do
begin
Cheque:=Cheque+Query2Valor.Value;
Query2.Next;
end;
While not Query3.Eof do
begin
Diverso:=Diverso+Query3Valor.Value;
Query3.Next;
end;

Repare dentro dos WHILE´s que há uma pequena diferença em relação ao seu código original.


GOSTEI 0
Diana

Diana

21/02/2003

Eu poderia sugerir algo diferente?

Crie as queries assim:
QueryCheques.SQL = ´select sum(campovalor) as totalcheques from tabelacheques where campodata = ´+strtodate(date);

QueryDepositos.SQL = ´select sum(campovalor) as totaldepositos from tabeladepositos where campodata = ´+strtodate(date);

QueryDiversos.SQL = ´select sum(campovalor) as totaldiversos from tabeladepositos where campodata = ´+strtodate(date);

Depois:
SaldoHoje := SaldoAnterior + QueryDepositos.FieldByName(´TOTALDEPOSITOS´).AsFloat - (QueryCheques.FieldByName(´TOTALCHEQUES´).AsFloat + QueryDiversos.FieldByName(´TOTALDIVERSOS´).AsFloat);


A propósito, no seu código tem um erro nas somas dentro dos WHILE´s:
While not Query1.Eof do
begin
Deposito:=Deposito+Query1Valor.Value;
Query1.Next;
end;
While not Query2.Eof do
begin
Cheque:=Cheque+Query2Valor.Value;
Query2.Next;
end;
While not Query3.Eof do
begin
Diverso:=Diverso+Query3Valor.Value;
Query3.Next;
end;

Repare dentro dos WHILE´s que há uma pequena diferença em relação ao seu código original.


GOSTEI 0
Anonymous

Anonymous

21/02/2003

[color=red:dad2ff9534]Não entendi!!![/color:dad2ff9534]


GOSTEI 0
POSTAR