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;


Ce

Ce

Responder

Posts

07/04/2006

Sremulador

tenta assim

IF StrtoInt(EdSaldoEstoqueNovo.Text) >= 0 then 
...



Responder

Gostei + 0

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

Aceitar