Ajuda - Busca - Membros - Calendário
Versão Completa: Formulario de saida com problemas
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
nicolasbraz
criei um formulario para saida de materiais.

O sistema esta sendo desenvolvido para uma construtora ai surge meu problema meu formulario.

http://img196.imageshack.us/img196/369/formulariodesaida.jpg

é o seguinte criei essa tela para fazer a saida so que na construtora é necessario lançar varias vezes o mesmo material na obra so mudando a data so que da maneira que eu criei a tabela ele da erro ao fazer isso.

http://img268.imageshack.us/img268/1674/bancodedados.jpg

o erro

http://img29.imageshack.us/img29/8251/semttulolge.jpg

Começou a dar esse erro quando removi a chave primaria do campo "Saiprod_codproduto"
Jhonas
QUOTE
o erro

http://img29.imageshack.us/img29/8251/semttulolge.jpg

Começou a dar esse erro quando removi a chave primaria do campo "Saiprod_codproduto"


Erro: Violação Primaria ou Chave Unica constraint Saida_Produto_PK na tabela SAIDA_PRODUTO

Se voce remover a chave primaria deve tambem remover o Foreign Key e tambem o que estiver definido em Constraints

abraço
nicolasbraz
já resolvi criei 1 campo que vai ser chave primaria auto incremento.

valeu.

o problema seria como fazer para incrementar ele automaticamente.

Criei o generator e a trigger mas ele não gera o codigo automatico.


http://img41.imageshack.us/img41/9032/semttulotox.jpg

esse e o form a ideia é toda a vez que eu ir para baixo ele incrementar 1 novo codigo (saiprod_codigo).
Jhonas
QUOTE
o problema seria como fazer para incrementar ele automaticamente.


Se voce definiu o campo como autoincremento, ao fazer um append ou insert ele será automatico

abraço
nicolasbraz
então fiz o seguinte.

Então.. no seu table ou dataset, deixe o campo do código com a propriedade required=false

Dai no evento AfterPost vai depender do que você está usando...
Se está usando a paleta dbExpress por exemplo, vai ter q dar dataset.applyupdates(0);
Se tiver algum transaction , terá q dar o commitretaining;

Acredito que se com a propriedade required=false... você pode dar esse applyupdates e commitretaing quando o usuário clicar novamente o salvar ali de cima...

Se por acaso depois de fazer isso não aparecer os dados saiprod na grid, dê um refresh..



Mas agora toda a vez que eu coloco 1 produto novo ele usa o evento.

Saiprod_codproduto no evento on validate

CODE
if (dmdados.TblEstoque.locate('est_codigo',dmdados.tblSaidaProdutoSAIPROD_CODProduto.value,[lopartialKey,locaseinsensitive])) then
      dmdados.tblsaidaProdutoSAIPROD_VALORPRODUTO.Value:=dmdados.TblEstoqueEST_PRECOVENDA.Value
   else
     ShowMessage('Produto não Cadastrado');



nicolasbraz
Resolvi o problema formulario funcionando perfeitamente.
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.