Delphi 7 dbgrid

09/01/2016

3

Galera tenho uma tela de vendas, e tenho um dbgrid com campo pra selecionar o produto por codigo,estou usando chave composta,por que uso 2 tabelas,agr sendo que se eu selecionar na mesma venda 2 produtos iguais ele da um erro de duplicate primary Key,e isso é normal,mais eu queria saber um codigo pra quando o usuario por acaso selecionar o mesmo produto o sistema altomaticamente de uma mensagem e cancele aquele especifico produto da venda,desde ja agradeço a a ajuda . . . :) :D
Responder

Post mais votado

13/01/2016

Boa observação P2, havia esquecido disso.

E lembrar que em aplicações comerciais que façam a emissão de NFE, os produtos podem se repetir na listagem da venda, o servidor deles aceita essa "atrocidade" (kkkkkk), mas que as boas práticas indicam outra coisa, blz.
Responder

Mais Posts

13/01/2016

Ronaldo Filho

Boa tarde Grande.

No caso você pode usar o try except na função e tratar com Exception.

try

  //função para selecionar o produto

except
    on E : Exception do
begin
    if(AnsiPos(E.mesage, 'Duplicated')){
        ShowMesage('');
        //aqui você pode passar o resto da função
    }
end;
Responder

13/01/2016

P2

Só para complementar,

Uma boa ideia, é quando for informado um novo produto, seja informando o código ou selecionando no grid de produtos ser verificado se já existe, se sim atualiza quantidade e valores se não realiza a inserção por completa.
Responder

13/01/2016

Paulo

valeu Galera :)
Responder

13/01/2016

Paulo

isso é algo bem complexo,apesar de ser algo bem simples,em cada venda no grid nao aceitara o mesmo produto 2 vezes,por conta de nao da aquele erro de inserir 2 primary keys iguais mesmo usando chave composta,desdi já agradeço a ajuda mestres :)
Responder

13/01/2016

Ronaldo Filho

Foi boa Grande, precisando lembre que existem ótimos profissionais visualizando o fórum do devmedia sempre no intuito de ajudar a todos. Já precisei muito e o pessoal sempre me ajudou.
Responder

18/01/2016

Paulo

Caro amigo Ronaldo onde exatamente insiro esse codigo,estou usando pra selecionar os produtos dentro do proprio dbgrid,fazendo uma listagem,e estou sentindo dificuldade para inserir o codigo no local certo,desde ja agradeço a resposta (y)
Responder

19/01/2016

Ronaldo Filho

No caso você coloca o código na função que você chama para inserir o produto, logo após você selecionar o produto e executar o post na tabela de itens do pedido
Responder

27/01/2016

Paulo

valeu :)
Responder