Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
will_pacini Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Quarta-Feira, 5 de Janeiro de 2011 Mensagens: 214
|
Enviada: Sex Out 30, 2015 1:09 pm Assunto: Inclusão de produtos da tela de vendas no banco |
|
|
Olá,
Estou com dificuldade em algo que deve ser bem simples mas não consigo entender.
Estou criando um sistema de PDV simples e estou com um problema para incluir todos os produtos da tela de vendas na minha tabela do banco.
Se eu jogar 10 produtos na tela, apenas o último fica salvo no banco.
Alguém poderia me ajudar?
Estou utilizando Firebird 2.5 e Xe3.
Segue meu código de finalizar a venda, aqui ele lança os produtos em um CDS e abre a tela de finalização onde o usuário daria desconto e escolheria a forma de pagamento e daria um applyupdates no CDS...
Código: | procedure TfrmVendas.BitBtn3Click(Sender: TObject);
begin
dsPedido.DataSet.Open;
dsPedido.DataSet.Insert;
dmFechamento.cdsPedido.FieldByName('DATA').AsDateTime := now;
dmFechamento.cdsPedido.FieldByName('HORA_FECHA').AsDateTime := TIME;
dmFechamento.cdsPedidoVALOR_TOTAL.Value := ClientDataSet1SomaTotal.Value;
dmFechamento.cdsPedidoQTD_PRODUTO.Value := ClientDataSet1Qtd.Value;
dmFechamento.cdsPedidoCORTE.Value := ClientDataSet1TipoCorte.Value;
dmFechamento.cdsPedidoBORDA.Value := ClientDataSet1Borda.Value;
dmFechamento.cdsPedidoTAMANHO.Value := ClientDataSet1Tamanho.Value;
dmFechamento.cdsPedidoOBS_PRODUTO.Value := ClientDataSet1Obs.Value;
dmFechamento.cdsPedidoID_PRODUTO.Value := ClientDataSet1Id_Produto.Value;
dmFechamento.cdsPedidoID_SECAO.Value := ClientDataSet1ID_SECAO.Value;
dmFechamento.cdsPedidoID_FORNECEDOR.Value := ClientDataSet1ID_FORNECEDOR.Value;
dsPedido.DataSet.Post;
// dmFechamento.cdsPedido.ApplyUpdates(0);
frmFechamento := TfrmFechamento.Create(Self);
frmFechamento.ShowModal;
FreeAndNil(frmFechamento);
end; |
obs: o applyupdates "comentado" é proposital.
Obrigado |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
will_pacini Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Quarta-Feira, 5 de Janeiro de 2011 Mensagens: 214
|
Enviada: Sex Out 30, 2015 1:37 pm Assunto: |
|
|
Boa tarde Imex, sim estão
Puts pode ser mesmo, você poderia me dar uma luz?
Estou perdido rs
Obrigado |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Out 30, 2015 2:11 pm Assunto: |
|
|
Experimente mais ou menos dessa forma:
Código: | ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
dmFechamento.cdsPedido.Insert;
dmFechamento.cdsPedido.FieldByName('DATA').AsDateTime := now;
dmFechamento.cdsPedido.FieldByName('HORA_FECHA').AsDateTime := TIME;
dmFechamento.cdsPedidoVALOR_TOTAL.Value := ClientDataSet1SomaTotal.Value;
dmFechamento.cdsPedidoQTD_PRODUTO.Value := ClientDataSet1Qtd.Value;
dmFechamento.cdsPedidoCORTE.Value := ClientDataSet1TipoCorte.Value;
dmFechamento.cdsPedidoBORDA.Value := ClientDataSet1Borda.Value;
dmFechamento.cdsPedidoTAMANHO.Value := ClientDataSet1Tamanho.Value;
dmFechamento.cdsPedidoOBS_PRODUTO.Value := ClientDataSet1Obs.Value;
dmFechamento.cdsPedidoID_PRODUTO.Value := ClientDataSet1Id_Produto.Value;
dmFechamento.cdsPedidoID_SECAO.Value := ClientDataSet1ID_SECAO.Value;
dmFechamento.cdsPedidoID_FORNECEDOR.Value := ClientDataSet1ID_FORNECEDOR.Value;
dmFechamento.cdsPedido.Post;
ClientDataSet1.Next;
end; |
Espero que ajude. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
will_pacini Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Quarta-Feira, 5 de Janeiro de 2011 Mensagens: 214
|
Enviada: Sex Out 30, 2015 2:22 pm Assunto: |
|
|
imex escreveu: | Experimente mais ou menos dessa forma:
Código: | ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
dmFechamento.cdsPedido.Insert;
dmFechamento.cdsPedido.FieldByName('DATA').AsDateTime := now;
dmFechamento.cdsPedido.FieldByName('HORA_FECHA').AsDateTime := TIME;
dmFechamento.cdsPedidoVALOR_TOTAL.Value := ClientDataSet1SomaTotal.Value;
dmFechamento.cdsPedidoQTD_PRODUTO.Value := ClientDataSet1Qtd.Value;
dmFechamento.cdsPedidoCORTE.Value := ClientDataSet1TipoCorte.Value;
dmFechamento.cdsPedidoBORDA.Value := ClientDataSet1Borda.Value;
dmFechamento.cdsPedidoTAMANHO.Value := ClientDataSet1Tamanho.Value;
dmFechamento.cdsPedidoOBS_PRODUTO.Value := ClientDataSet1Obs.Value;
dmFechamento.cdsPedidoID_PRODUTO.Value := ClientDataSet1Id_Produto.Value;
dmFechamento.cdsPedidoID_SECAO.Value := ClientDataSet1ID_SECAO.Value;
dmFechamento.cdsPedidoID_FORNECEDOR.Value := ClientDataSet1ID_FORNECEDOR.Value;
dmFechamento.cdsPedido.Post;
ClientDataSet1.Next;
end; |
Espero que ajude. |
Maravilha
só tive um problema onde cada produto criou um novo Id de pedido, mas o caminho é esse...
Vou dar uma olhada o pq houve isso.
Mas obrigado!
Foi de grande ajuda! |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
will_pacini Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Quarta-Feira, 5 de Janeiro de 2011 Mensagens: 214
|
Enviada: Qui Nov 05, 2015 8:01 am Assunto: |
|
|
Pessoal, quebrei a cabeça a semana inteira mas não consigo resolver.
a cada produto da minha tela de vendas ele cria uma nova ID de pedido,
O correto seria a venda conter um ID para todos os produtos, não? |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Nov 05, 2015 9:28 am Assunto: |
|
|
Onde você está preenchendo o ID do pedido? No banco de dados ou na sua aplicação?
Se é na sua aplicação, em que evento ou local exato está sendo feito o preenchimento do campo? |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
will_pacini Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Quarta-Feira, 5 de Janeiro de 2011 Mensagens: 214
|
Enviada: Sex Nov 06, 2015 7:19 am Assunto: |
|
|
imex escreveu: | Onde você está preenchendo o ID do pedido? No banco de dados ou na sua aplicação?
Se é na sua aplicação, em que evento ou local exato está sendo feito o preenchimento do campo? |
Bom dia, o Id é gerado pelo Firebird. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Nov 06, 2015 8:20 am Assunto: |
|
|
Bom dia,
Você pode utilizar um generator (ou sequence) no banco de dados Firebird para gerar os Ids, mas acredito que você vai ter que utilizar código na sua aplicação para obter um novo Id do BD e utiliza-lo para preencher o campo do Id do pedido da tabela de itens (produtos).
Lembrando que o BD não deverá preencher esse campo nesse caso porque o mesmo já está sendo preenchido na aplicação.
Espero que ajude. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
will_pacini Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Quarta-Feira, 5 de Janeiro de 2011 Mensagens: 214
|
Enviada: Sex Nov 06, 2015 8:28 am Assunto: |
|
|
imex escreveu: | Bom dia,
Você pode utilizar um generator (ou sequence) no banco de dados Firebird para gerar os Ids, mas acredito que você vai ter que utilizar código na sua aplicação para obter um novo Id do BD e utiliza-lo para preencher o campo do Id do pedido da tabela de itens (produtos).
Lembrando que o BD não deverá preencher esse campo nesse caso porque o mesmo já está sendo preenchido na aplicação.
Espero que ajude. |
Certo, então só para esclarecer, o que está acontecendo está errado certo?
Se a venda conter 10 produtos, os 10 produtos precisam ter um único ID de "pedido" no caso. Certo? |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Nov 06, 2015 8:47 am Assunto: |
|
|
Nesse caso é necessário ter em algum campo da tabela um mesmo Id para que seja possível identificar que os 10 produtos (ou quantos forem) são da mesma venda/pedido.
Espero que ajude. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
will_pacini Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Quarta-Feira, 5 de Janeiro de 2011 Mensagens: 214
|
Enviada: Sex Nov 06, 2015 8:52 am Assunto: |
|
|
imex escreveu: | Nesse caso é necessário ter em algum campo da tabela um mesmo Id para que seja possível identificar que os 10 produtos (ou quantos forem) são da mesma venda/pedido.
Espero que ajude. |
Maravilha!
Ajudou muito, obrigado mesmo!
Abraços |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
|