Apagar registro dbGrid
24/03/2018
0
dmcantina.ztrProdutos.Active; dmcantina.ztrProdutos.Edit; dmcantina.ztrProdutosp_peso.Value := dmcantina.ztrProdutosp_peso.Value - dsvendaitem.dataset.fieldbyname('vi_peso').Value; dmcantina.ztrProdutos.Post;
Só que o usuário também tem a opção de apagar o produto do caixa então para fazer o upload da tabela precisa clicar em confirmar para executar o seguinte comando:
dmcantina.ztrProdutos.ApplyUpdates;
Comando para apagar o item do dbgrid:
if dsvendaitem.DataSet.IsEmpty then begin showmessage ('Registro vazio'); end else begin dsvendaitem.DataSet.Delete; end;
Estava funcionando bem, até eu perceber que se eu colocasse dois items e removesse um ao confirmar a venda com dmcantina.ztrProdutos.ApplyUpdates;
os dois items são debitados do estoque...
já quebrei a cabeça bastante e não acho uma maneira de resolver isso.
Se alguém puder me dar um luz e fico muito grato =D
Michel
Posts
25/03/2018
Jerson Boer
25/03/2018
Michel
25/03/2018
Jerson Boer
Fazendo da forma que imagino, seu código seria uma consulta query que passe as informações como parâmetro, por exemplo:
update produto set volumetotal = volumetotal - :pPesoItem where IDProduto = :pIDProduto
Você passa isso pro componente do Zeos que executa query e depois passa os valores como parâmetros, mais ou menos assim:
ComponenteZeos.parametro(pPesoItem).Value := dsvendaitem.dataset.fieldbyname('vi_peso').Value;
ComponenteZeos.parametro(pIDProduto).Value := dsvendaitem.dataset.fieldbyname('idproduto').Value;
ComponenteZeos.execute;
Este código em um botão, irá debitar o estoque somente do item que estiver selecionado. A vantagem é que em uma mesma query você pode colocar outras ações, por exemplo:
> atualiza o volume total
> atualiza o item da venda para excluído
> atualiza o valor dos pedidos
Você pode colocar todas as atualizações necessárias na mesma query, executando as em sequência
25/03/2018
Jerson Boer
Um programador fez em um projeto meu uma regra de validação de cliente, veja quantas condições existiam:
https://drive.google.com/open?id=1A46CGmb_DA5XWRIWiKiJSgZOw8HcxPDb
Quando fiz uma revisão de conceito e mudei para querys:
https://drive.google.com/open?id=1V83G3-dQXp8F4zAIMgHRVL2AGLmrsnxt
Uma única consulta checa todas as condições necessárias e me retornar Sim ou Não:
https://drive.google.com/open?id=14dFWK0wu_Bh1kG-FKUdyXnlbJ3pMb-qx
O mesmo conceito acredito que você possa aplicar em seu projeto, desta forma, não fica com as atualizações fixas em uma grid.
26/03/2018
Michel
Clique aqui para fazer login e interagir na Comunidade :)