Código bloqueia operação de retirada
Olá Senhores(a), sou novo em Delphi 7, estou fazendo um sistema de controle de estoque para um hospital(grátis), tenho uma Procedure para retirar produto da tabela tabproduto(cod_produto, produto, qtde, un) o código para retirar o produto segue baixo, uso conexao ADO e Access. Como faço para quando o usuário for retirar um numero de produto superior ao que contem no estoque o sistema informar que não pode
procedure TFrmSaiProduto.sbConfirmaClick(Sender: TObject);
begin
DataModule1.ADOTabSaiProduto.Post;
DataModule1.ADOTabProduto.Edit;
DataModule1.ADOTabProdutoqtde.Value:=DataModule1.ADOTabProdutoqt de.Value-DataModule1.ADOTabSaiProdutoqtde.AsVariant;
DataModule1.ADOTabProduto.Post;
DataModule1.ADOTabSaiProduto.Close;
DataModule1.ADOTabSaiProduto.Open;
DBLookupComboBox2.SetFocus;
end;
procedure TFrmSaiProduto.sbConfirmaClick(Sender: TObject);
begin
DataModule1.ADOTabSaiProduto.Post;
DataModule1.ADOTabProduto.Edit;
DataModule1.ADOTabProdutoqtde.Value:=DataModule1.ADOTabProdutoqt de.Value-DataModule1.ADOTabSaiProdutoqtde.AsVariant;
DataModule1.ADOTabProduto.Post;
DataModule1.ADOTabSaiProduto.Close;
DataModule1.ADOTabSaiProduto.Open;
DBLookupComboBox2.SetFocus;
end;
Alvaro_web
Curtidas 0
Respostas
Alvaro_web
09/05/2006
Por favor, se alguem com mais esperiencia vir o código, olhe se está escrito certo? se não informe o erro, desde já muitíssimo obrigado
GOSTEI 0
Paullsoftware
09/05/2006
Uma das maneiras é vc tratar o valor informado para saída na hora em que ele digitar o valor tipo:
Coloque um botão que vai localizar o produto pelo codigo informado e faça a localização do mesmo +/- assim:
Coloque um Edit1 e Faça esse código no OnChange do mesmo:
espero ter ajudado :wink:
var form1 : TForm1; StqAtual : Integer; //aqui defino um variavel que vai funcionar em todo formulário
Coloque um botão que vai localizar o produto pelo codigo informado e faça a localização do mesmo +/- assim:
StqAtual := 0; TabelaProduto.Locate(´Codigo´,TabelaSaidaCodProduto.AsString,[]);//Onde CodProduto o campo onde é lançado o código do produto que vai receber a saída. //Feito isso eu também já pego a quantidade em estoque atual e jogo em uma variável qualquer, definida de form global if TabelaProdutoEstoque.AsInteger <= 0 then begin ShowMessage(´Produto em baixa no estoque´); StqAtual := 0; Exit; end else begin StqAtual := TabelaProdutoEstoque.AsInteger;//aqui passo o valor atual do estoque para minha variavel end
Coloque um Edit1 e Faça esse código no OnChange do mesmo:
var QtdAtual,QtdSai: Integer; begin try if StrToInt(Edit1.Text)>0 then begin if StqAtual >= StrToInt(Edit1.Text) then begin //Código para tratar quando a quantidade informada for uma quantidade válida end else begin ShowMessage(´O valor informado é maior do que a quantidade Existente no estoque. Proceda a correção´); ShowMessage(´Estoque atual: ´+IntToStr(StqAtual)); Exit; end; end; Except on E: Exception do MessageDlg(´Valor informado não é uma valor válido ´+e.Message,MtError,[MbOk],0); end;
espero ter ajudado :wink:
GOSTEI 0