Fórum Conversão tipos.. #318565
07/04/2006
0
Olá,
Estou fazendo uma subtração de duas CurrencyEdits:
EdSAldoEstoqueNovo.Text:=floattostr(strtofloat(EDSAldoEstoqueAntigo.text)- strtofloat(EDQtde.text));
Meu resultado dessa subtracao fica na EdSAldoEstoqueNovo.
Acontece que gostaria de fazer um insert em uma tabela do Mysql quando o valor da edit [b:b1fac75784]for superior ou igual a 0(zero), [/b:b1fac75784]pois se o resultado for menor que zero meu estoque ficaria negativo :shock:
Mas eu não consigo deixar ZERADO!!!
[b:b1fac75784]IF EdSaldoEstoqueNovo.Text >= ´0´ then[/b:b1fac75784]
Codigo button:
procedure TForm_Saidas.BtnOKClick(Sender: TObject);
var
dataCad : string;
ddata : TDate;
begin
ddata := strtodateDef(Form_Menu.SBPrincipal.Panels[2].text,0);
if ddata > 0 then
dataCad := formatdatetime(´yyyy-mm-dd´,ddata)
else
dataCad := ´null´;
///////////////////VERIFICA SALDO ANTIGO DO PRODUTO
with QueryProdutos do
Begin
QueryProdutos.Close;
QueryProdutos.Sql.Clear;
QueryProdutos.Sql.text := ´select COD,PRODUTO,SALDO from tab_produtos where COD = ´+QuotedStr(EdCod.text)+´´;
QueryProdutos.Active := true;
End;
EDSaldoEstoqueAntigo.Text:=queryProdutos.FieldByname(´SALDO´).Asstring;
EdSAldoEstoqueNovo.Text:=floattostr(strtofloat(EDSAldoEstoqueAntigo.text)- strtofloat(EDQtde.text));
IF EdSaldoEstoqueNovo.Text >= ´0´ then
Begin
decimalseparator:=´.´; //DEFINE O SEPARADOR COMO . FICA 33.33 E NAO 33,33
QuerySAidas.Active := False;
QuerySaidas.SQL.Clear;
QuerySaidas.Sql.Add(´insert into tab_saidas (PRODUTO, COD_PRODUTO, UN, NF, PRECO_VENDA, QTDE, CLIENTE, DATA_SAIDA, ´+
´USUARIO, VIVO) values (´+´´´´+CBProduto.text+´´´´+´,´+´´´´+EdCod.text+´´´´+´,´+´´´´+EdUN.text+´´´´+´,´+´´´´+EdNF.text+´´´´+´,´+QuotedStr(FLOATTOSTR(EdValorUnit.VALUE))+´,´+QuotedStr(FLOATTOSTR(EdQtde.VALUE))+´,´+´´´´+CBCliente.text+´´´´+´,´+´´´´+dataCad+´´´´+´,´+´´´´+Form_Menu.SBPrincipal.Panels[0].Text+´´´´+´,´+´´´´+´S´+´´´)´);
QuerySaidas.ExecSql; //execucao final
MessageDLG(´OK.QUANTIDADE RETIRADA DO ESTOQUE.´,mtinformation, [mbok],0); //mensagem de OK
decimalseparator:=´,´;
with QueryProdutos do
Begin
decimalseparator:=´.´; //DEFINE O SEPARADOR COMO . FICA 33.33 E NAO 33,33
Close;
Sql.Clear;
Sql.text:= ´update tab_produtos Set SALDO = ´+QuotedStr(FLOATTOSTR(EdSAldoEstoqueNovo.VALUE))+´ where COD=´´´+edcod.text+´´´´;
ExecSql;
End;
decimalseparator:=´,´; //volta o separador para ,
BtnCadastrar.Enabled := true;
BtnCancelar.Enabled := false;
{ CBCliente.Text := ´´;
CBCliente.Enabled := False;
CBProduto.Text := ´´;
CBProduto.Enabled := false;
EdUn.Clear;
EdQtde.Clear;
EdQtde.Enabled := false;
EdValorUnit.Clear;
EdValorUnit.Enabled := false;
EdNf.Clear;
EdNf.Enabled := false; }
BtnOK.Enabled := false;
end
else
ShowMessage(´Quantidade superior a existente no estoque.´);
EdQtde.SetFocus;
end;
Estou fazendo uma subtração de duas CurrencyEdits:
EdSAldoEstoqueNovo.Text:=floattostr(strtofloat(EDSAldoEstoqueAntigo.text)- strtofloat(EDQtde.text));
Meu resultado dessa subtracao fica na EdSAldoEstoqueNovo.
Acontece que gostaria de fazer um insert em uma tabela do Mysql quando o valor da edit [b:b1fac75784]for superior ou igual a 0(zero), [/b:b1fac75784]pois se o resultado for menor que zero meu estoque ficaria negativo :shock:
Mas eu não consigo deixar ZERADO!!!
[b:b1fac75784]IF EdSaldoEstoqueNovo.Text >= ´0´ then[/b:b1fac75784]
Codigo button:
procedure TForm_Saidas.BtnOKClick(Sender: TObject);
var
dataCad : string;
ddata : TDate;
begin
ddata := strtodateDef(Form_Menu.SBPrincipal.Panels[2].text,0);
if ddata > 0 then
dataCad := formatdatetime(´yyyy-mm-dd´,ddata)
else
dataCad := ´null´;
///////////////////VERIFICA SALDO ANTIGO DO PRODUTO
with QueryProdutos do
Begin
QueryProdutos.Close;
QueryProdutos.Sql.Clear;
QueryProdutos.Sql.text := ´select COD,PRODUTO,SALDO from tab_produtos where COD = ´+QuotedStr(EdCod.text)+´´;
QueryProdutos.Active := true;
End;
EDSaldoEstoqueAntigo.Text:=queryProdutos.FieldByname(´SALDO´).Asstring;
EdSAldoEstoqueNovo.Text:=floattostr(strtofloat(EDSAldoEstoqueAntigo.text)- strtofloat(EDQtde.text));
IF EdSaldoEstoqueNovo.Text >= ´0´ then
Begin
decimalseparator:=´.´; //DEFINE O SEPARADOR COMO . FICA 33.33 E NAO 33,33
QuerySAidas.Active := False;
QuerySaidas.SQL.Clear;
QuerySaidas.Sql.Add(´insert into tab_saidas (PRODUTO, COD_PRODUTO, UN, NF, PRECO_VENDA, QTDE, CLIENTE, DATA_SAIDA, ´+
´USUARIO, VIVO) values (´+´´´´+CBProduto.text+´´´´+´,´+´´´´+EdCod.text+´´´´+´,´+´´´´+EdUN.text+´´´´+´,´+´´´´+EdNF.text+´´´´+´,´+QuotedStr(FLOATTOSTR(EdValorUnit.VALUE))+´,´+QuotedStr(FLOATTOSTR(EdQtde.VALUE))+´,´+´´´´+CBCliente.text+´´´´+´,´+´´´´+dataCad+´´´´+´,´+´´´´+Form_Menu.SBPrincipal.Panels[0].Text+´´´´+´,´+´´´´+´S´+´´´)´);
QuerySaidas.ExecSql; //execucao final
MessageDLG(´OK.QUANTIDADE RETIRADA DO ESTOQUE.´,mtinformation, [mbok],0); //mensagem de OK
decimalseparator:=´,´;
with QueryProdutos do
Begin
decimalseparator:=´.´; //DEFINE O SEPARADOR COMO . FICA 33.33 E NAO 33,33
Close;
Sql.Clear;
Sql.text:= ´update tab_produtos Set SALDO = ´+QuotedStr(FLOATTOSTR(EdSAldoEstoqueNovo.VALUE))+´ where COD=´´´+edcod.text+´´´´;
ExecSql;
End;
decimalseparator:=´,´; //volta o separador para ,
BtnCadastrar.Enabled := true;
BtnCancelar.Enabled := false;
{ CBCliente.Text := ´´;
CBCliente.Enabled := False;
CBProduto.Text := ´´;
CBProduto.Enabled := false;
EdUn.Clear;
EdQtde.Clear;
EdQtde.Enabled := false;
EdValorUnit.Clear;
EdValorUnit.Enabled := false;
EdNf.Clear;
EdNf.Enabled := false; }
BtnOK.Enabled := false;
end
else
ShowMessage(´Quantidade superior a existente no estoque.´);
EdQtde.SetFocus;
end;
Ce
Curtir tópico
+ 0
Responder
Posts
07/04/2006
Sremulador
tenta assim
IF StrtoInt(EdSaldoEstoqueNovo.Text) >= 0 then ...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)