Ainda sobre Entrada saldo - saida = saldo destacado
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´
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
Curtidas 0
Respostas
Edilcimar
04/01/2004
if saldo > 0 then
label1.color := clBlue
else
label1.color := clRed;
label1.color := clBlue
else
label1.color := clRed;
GOSTEI 0
Wagner
04/01/2004
Tudo bem ate ai...vai mudar a cor, mais quanto aos resultados soma, diminuir. pode me ajudar com os outros erros
Obrigado
Obrigado
GOSTEI 0
Edilcimar
04/01/2004
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
GOSTEI 0
Wagner
04/01/2004
:? Colega e exatamente como eu expliquei e isso que eu quero :cry: so não sei como fazer.
GOSTEI 0
Edilcimar
04/01/2004
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
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
GOSTEI 0
Wagner
04/01/2004
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´
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´
GOSTEI 0
Edilcimar
04/01/2004
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.
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.
GOSTEI 0
Wagner
04/01/2004
Continua com o mesmo erro, socorro alguem me ajude
GOSTEI 0
Wagner
04/01/2004
Socorro
GOSTEI 0