GARANTIR DESCONTO

Fórum Tabela de estoque. Erro em entrada de dados... #186651

07/10/2003

0

Saudações, estou tentando fazer o seguinte no meu programa, ao cadastrarmos um produto na tabela, caso esta seja a primeira compra dele o campo de saída receba 0 e o campo de qtde atual receba diretamente a qtde comprada, caso contrário, se o nome já existir e tiver alguma saída desse produto, o campo de qtde atual receberá a qtde comprada menos a saída. O programa compila e executa sem problema mas quando eu ponho algum produto novo ele acusa que o campo de saída fica com um valor inteiro ´ ´ que não é válido. Como resolvo isso? Álguém sabe ajudar? Detalhe: é a primeira vez que tento fazer esse lance tipo estoque e estou precisando mesmo de ajuda. Muito obrigado.

procedure Tfrmcompesc.btconfirmarClick(Sender: TObject);
begin
fim;
if application.messagebox(´Confirma a Atualização?´,´Confirme´, mb_yesno) = idyes then
begin
try
if dbnome.text <> tbescNome.asstring then
begin
tbesc.append;
tbescQtdesai.asinteger := 0;
tbescQtdent.asinteger := strtoint(dbqtde.text);
tbescQtdeatual.asinteger := strtoint(dbqtde.text);
tbesc.post;
tbesc.close;
tbesc.open;
end
else
tbesc.append;
tbescQtdent.asinteger:= tbescQtdent.asinteger + strtoint(dbqtde.text);
tbescQtdesai.asinteger := tbescqtdesai.asinteger;
tbescQtdeatual.asinteger := tbescQtdent.asinteger - tbescQtdesai.asinteger;
tbesc.post;
tbesc.close;
tbesc.open;
except begin
MessageDlg (´Não foi possível registrar esta compra´, mtInformation,[mbOk],0);
exit;
end;
end;
end;
end;


Elias Jr

Elias Jr

Responder

Posts

07/10/2003

Hilton_sa

Tem como você informar a mensagem de êrro?


Responder

Gostei + 0

07/10/2003

Elias Jr

Tem como você informar a mensagem de êrro?


Project Inventário.exe raised Exception class EConvertError with message ´´ não é um valor inteiro válido. Como resolvo isso? Muito obrigado.


Responder

Gostei + 0

07/10/2003

Luizfernando777

Caro colega,
Você fez varias proteções,
mas esqueceu da principal,
qdo vc passa um valor do Campo TEdit,
geralmente ele é String certo,
mas vc não pode converter um valor
´vazio´ para inteiro,
então:
if Edit1.Text = ´´ then
Edit1.Text := ´0´;

mas o seu projeto
está usando o TDBEdit,
ele já fica direto c/ sua
base de dados, então,
vc NÃO precisa passar
os paramentros para a tabela,
somente os que vão sofer
alteração (que no caso),
você soma

ex:
procedure botãoconfirma;
var
Total : Integer;
begin

......
....
//seu código
...
...

if EditQtent.Text = ´´ then
EditQtEnt.Text := 0;

Total := tbescQtdent.Value;
tbescQtdent.Value := Total + StrToInt( EditQtdent.Text );
...
...
Post;
end;

desculpe pelo comentário muito grande.
se vc precisar de alguma ajuda,
me escreva
luizfernando777@yahoo.com.br
pois noto que dá para otimizar seu cód. Fonte


Responder

Gostei + 0

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

Aceitar