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...
Obrigado.
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...
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;
Obrigado.
William Pacini
Curtidas 0
Respostas
Wazowski
29/10/2015
Você ta executando com esse ApplyUpdates em comentário? Experimenta tirar de comentário pra ele aplicar as mudanças...
GOSTEI 0
Raimundo Pereira
29/10/2015
O post salva os dados em memória use o dmFechamento.cdsPedido.ApplyUpdates(-1);
GOSTEI 0
Dirceu Morais
29/10/2015
Não sei se já conseguiu resolver seu problema mas acho que o correto seria assim:
procedure TfrmVendas.BitBtn3Click(Sender: TObject); begin dsPedido.DataSet.Open; ClientDataSet1.first; While Not ClientDataSet1.eof do Begin dmFechamento.cdsPedido.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; ClientDataSet1.next; end; dmFechamento.cdsPedido.ApplyUpdates(0); frmFechamento := TfrmFechamento.Create(Self); frmFechamento.ShowModal; FreeAndNil(frmFechamento); end;
GOSTEI 0