Fórum Ainda sobre Entrada saldo - saida = saldo destacado #204088

04/01/2004

0

Olá pessoal resolvi abri outro topico e explicar melhor, olha so!
o que eu tenho: um banco paradox com os campos entrada tipo N, saida tipo N. e saldo tipo N. o que eu queria acrescentar entradas ao saldo e diminuir as saidas e ficar com o saldo destado vermelho se saldo negativo e azul se saldo positivo.

Com essa dica eu obtive o saldo destacado vermelho independente de negativo ou possitivo :cry: e não estava somando nem diminuindo nada

var
Entradas, Saidas, Saldo: Double;
begin
Query1.Active:= false;
Query1.Sql.Text:= ´Select SUM(Entradas) as SE, Sum(Saidas) as SS from tabela´;
Query1.Active:= true;
Entradas:= Query1.FieldByName(´SE´).asFloat;
Saidas:= Query1.FieldByName(´SS´).asFloat;
Saldo:= Entradas - Saidas;
if (Saldo > 0) then
Label1.Font.Color:= $0000CC;
else
Label1.Font.Color:= $CC0000;
Label1.Caption:= FloatToStr(Saldo);

:lol: Então tentei fazer dessa forma e deu os seguintes erros com as duas tentativas

Obs.: Sou iniciante estou indo na base de tentativas, socorro o que estou fazendo de errado?

var
Entrada, Saida, Saldo: Double;
begin
Query1.Active:= false;
Query1.Sql.Text:= ´Select SUM(Entrada) as SE, Sum(Saida) as SS from livrocaixa1´;
Query1.Active:= true;
Entrada:= Query1.FieldByName(´SE´).asFloat;
Saida:= Query1.FieldByName(´SS´).asFloat;
//Saldo:= Entrada - Saida;(tirei isso porque não estava dando certo)
saldo:= strtofloat (t_livrocaixa[´entrada´] + t_livrocaixa[´saldo´] - t_livrocaixa[´saida´]);
if (Saldo > 0) then
dbedit6.Font.Color:= $0000CC
else
dbedit6.Font.Color:= $CC0000;
dbedit6.text:= FloatToStr(Saldo);
end;

dessa forma (saldo:= strtofloat) da um erro na hora que entro no formulário em tempo de execução “ conversão do tipo variante invalido”

e dessa forma (saldo:=floattostr) da os erros abaixo
[Error] U_livrocaixa.pas(154): Incompatible types: ´Double´ and ´String´
[Fatal Error] Admincondo1.dpr(41): Could not compile used unit ´U_livrocaixa.pas´


Wagner

Wagner

Responder

Posts

04/01/2004

Edilcimar

if saldo > 0 then
label1.color := clBlue
else
label1.color := clRed;


Responder

Gostei + 0

04/01/2004

Wagner

Tudo bem ate ai...vai mudar a cor, mais quanto aos resultados soma, diminuir. pode me ajudar com os outros erros

Obrigado


Responder

Gostei + 0

04/01/2004

Edilcimar

eu não sei onde vc utiliza isto, mas eu utilizo um CAIXA da seguinte forma, um campo crédito, um campo débito e um campo saldo, se for uma entrada eu somo o valor ao campo saldo e se for uma saída eu subtraio, é óbvio que eu poderia colocar tudo em um mesmo campo com valores positivos e negativos, porém assim fica mais fácil a vizualização para o cliente, se vc fizer assim já terá o saldo automaticamente


Responder

Gostei + 0

04/01/2004

Wagner

:? Colega e exatamente como eu expliquei e isso que eu quero :cry: so não sei como fazer.


Responder

Gostei + 0

04/01/2004

Edilcimar

vou explicar sem sql, se quizer depois eu explico com sql
uma tabela com os campos data, entrada, saida e saldo
um edit onde será colocado o valor da movimentação e outro com a data da movimentação e 2 botões um para entrada de valor e outro para saída de valor
caso o usuário clique no botão entrada faça o seguinte:
begin
fieldbyname(´data´).value := strtodate(edit1.text);
fieldbyname(´entrada´).value := strtofloat(edit2.text);
fieldbyname(´saldo´).value := fieldbyname(´saldo´).value + strtofloat(edit2.text);
post;
end;
caso o usuário clique no botão saida faça o seguinte:
fieldbyname(´data´).value := strtodate(edit1.text);
fieldbyname(´saida´).value := strtofloat(edit2.text);
fieldbyname(´saldo´).value := fieldbyname(´saldo´).value - strtofloat(edit2.text);
post;
end;
é claro que vc deve tratar os dados para evitar erros do cliente, e se quizer pode colocar negativos os valores no campo saida, mas não é necessário


Responder

Gostei + 0

04/01/2004

Wagner

Achei, que da forma que explicou vai da certo(falta so implemetar as cores no saldo) mais Quer dizer que dessa forma ai..não tem jeito?

var
Entrada, Saida, Saldo: Double;
begin
Query1.Active:= false;
Query1.Sql.Text:= ´Select SUM(Entrada) as SE, Sum(Saida) as SS from livrocaixa1´;
Query1.Active:= true;
Entrada:= Query1.FieldByName(´SE´).asFloat;
Saida:= Query1.FieldByName(´SS´).asFloat;
saldo:= strtofloat (t_livrocaixa[´entrada´] + t_livrocaixa[´saldo´] - t_livrocaixa[´saida´]);
if (Saldo > 0) then
dbedit6.Font.Color:= $0000CC
else
dbedit6.Font.Color:= $CC0000;
dbedit6.text:= FloatToStr(Saldo);
end;

dessa forma (saldo:= strtofloat) da um erro na hora que entro no formulário em tempo de execução “ conversão do tipo variante invalido”

e dessa forma (saldo:=floattostr) da os erros abaixo
[Error] U_livrocaixa.pas(154): Incompatible types: ´Double´ and ´String´
[Fatal Error] Admincondo1.dpr(41): Could not compile used unit ´U_livrocaixa.pas´


Responder

Gostei + 0

04/01/2004

Edilcimar

comece trocando
entrada, saida, saldo : currency (para que não haja problemas de arredondamento), depois teste cada um dos sum separadamente para ver se dá certo, porém se vc já tem o saldo para que quer fazer contas com as entradas e as saídas para depois calcular o saldo? segundo vc dever estar misturando os campos para aparecer o erro de string e double.


Responder

Gostei + 0

05/01/2004

Wagner

Continua com o mesmo erro, socorro alguem me ajude


Responder

Gostei + 0

07/01/2004

Wagner

Socorro


Responder

Gostei + 0

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

Aceitar