Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jonata

como fazer Form de lançamento de vendas

Recommended Posts

bom pessoal como dito eu já fiz o relacionamento master/detail entre as tabelas VENDA e ITENS_VENDA

 

tabela VENDAS - chave primária=codigo

 

tabela ITENS VENDA - chave estrangeira= Codigo_venda

 

as chave já estão ligadas e já testei inserindo registro no IBEXPRESS...funfou tudo normal

 

Só que não sei como prosseguir dai pra frente, como cadastrar a venda e lançar os produtos na tabela de itens.

 

tem de colocar os produtos lançados no DbGrid (ligado a tabela ITENSVENDA) e ir passadoo total para o campo de totais (ligado a tabela VENDA)

como é que faço isso? alguém que já fez sistema comercial me dá uma luz ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

então cara, essa parte é meio complicada mesmo. tipo, o certo é voce usar um clientdataset que salva os valores que voce for colocar na grid na memória, antes de passar para o banco.voce coloca o clientdataset, coloca um grid adicional que sera ligado com o clientdataset e deixa esse grid por baixo do grid que vai tar ligado com a tabela itensvenda direto no banco. nesse dataset voce tambem deve fazer o relacionamento master-detail com a tabela principal, é praticamente igual a table normal, e se voce quiser pode usar um dbnavigator pra colocar os dados tanto na grid do banco quanto na do dataset, um para cada. o detalhe é que, usando esses componentes, o programa deve seguir uma certa ordem de execução, por exemplo:

 

1º - voce vai la e clice em "nova venda" da tabela principal. até ai só colocar as duas tabelas em modo de edição.

2º - coloque os dados da venda normalmente e use o grid com o dataset pra colocar os itens da venda.

3º - agora que vem a dificuldade: quando for salvar a venda, voce vai ter que primeiramente gerar um código da nota automaticamente e jogá-la direto no banco. feito isso, vai ter que abrir denovo as tabelas para editar e passar cada registro que está no dataset para a tabela do banco, um bom meio de fazer isso é com um laço de repetição, "while not clientdataset1.eof" do e depois disso voce joga cada um dos dados do clientdataset na tabela do banco, registro por registro.

 

com isso voce ira ter salvo a venda no seu banco, não é necessario fazer com o clientdataset, mas é muito melhor e mais seguro, pois os dados só vão para o banco depois que estiver tudo confirmado e OK.não querendo ser chato, essa parte é dificil e vai dar muito erro, mas qualquer coisa pergunta ai que agente vai te ajudando na medida do possível

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa Petrozzani..tudo certinho.... eu estou tentando entender a lógica de suas resposta . bem,

 

eu estou utilizando os conectores interbase para o Firebird...realmente o clientDataSet e um segundo dbGrid são necessários?..

 

perdoe minha arrogância pois estou começando a trabalhar com Delphi a pouco tempo e fico grato por sua colaboração.

 

eu estava pensando em fazer:

524890_483394038368506_1298889947_n.jpg

 

1 - pego os dados do produto, qtd e preço, etc e jogo no dbgrid do frm venda sem joga-lo no banco

 

2 - quando cliecar em "encerrar a venda" salvar o registro na tabela de "VENDA" e depois que for gerado o ID eu jogo os itens na tabela "ITENSVENDA" sem precisar usar o master detail....

 

 

mas na verdade ainda não entendi a função desse "MASTER/DETAIL" e se realmente é necessário utilizá-lo... pode me explicar para que serve de fato?

 

fico no aguardo, grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.