Inserir dados de uma Listbox em Banco de Daods

Delphi

08/11/2016

Bom Dia Amigos do DevMedia!

Procurei no forum e não encontrei nenhum topico que pudesse me ajudar a resolver o meu problema, então venho aqui pedir auxilio de vocês!

Então...

Estou desenvolvendo um sistema de automoção comercial, cheguei em um ponto do desenvolvimento, onde tenho que programar um Form para fazer um cadastro de vencimentos de Extintores, onde esse Form, busque no banco de dados os clientes e os produtos já cadastrados no banco, assim o usúario podera emitir um relatorio de todos os clientes que estão com Extintores proximo do Vencimento.

Ate este ponto o sistema esta funcionando perfeitamente, eu consigo fazer o DBLookupComboBox me relacionar os clientes e os produtos.

A Aplicação é nessa base:

1- Usuário seleciona o cliente a cadastrar.
2 - Usuário seleciona o produto a cadastrar.
3 - Usuário digita em um DBEdit a quantidade do produto a cadastrar.
4 - Usuário digita em um DBEdit a data de vencimento deste produto.

O problema e que pode acontece de Um cliente ter comprado mais de 10 tipo de produto, e para não precisar fazer um Form com varios DBEdits para receber os dados de vários Produtos, Quantidades e Vencimentos, eu gostaria de poder Pegar os Dados que estão no .Text do DBLookupCombox e DBEdits, e inserilos em um (ListBox, DBListBox, DBListView) ou algum outro componente.

Eu estou testando em um ListBox, estou conseguindo inserir varios Prodtuos neste ListBox, com 3 Colunas, onde a primeira dica o campo Descrição, a segunda o campo quantidade e a terceira o campo Vencimento, usando o codigo abaixo:

ListBox_Inserir.Items.Add (DBLook_Produto + DBE_Quantidade + DBE_Vencimento);

Estou usando estes componentes para conexão:

SQLConnection, SQLDataSet, DataSetProvider, ClientDataSet e DataSource.

Porem esse código só ira listar no ListBox, existe alguma maneira de gravar esses dados na Tabela?
Estou usando Banco de Dados Fire Bird junto com o IBExpert

A Tabela tem os campos: ID, Cliente, Produto, Quantidade, Vencimento e Observações.

Os campos Produto e Cliente ja estão com as FK para poder listar os campos no DBLookupComboBox.

Uso a linguagem Delphi.

Desculpem a extenção da minha duvida, mas foi a unica maneira que tive de descrever meu problema.

Se puderem me ajudar eu agradeço
Riccely Paula

Riccely Paula

Curtidas 0

Respostas

Arthur Jardim

Arthur Jardim

08/11/2016

Olá Riccely, você podeira tentar usar um DbGrid buscando os dados de uma Query ou até mesmo de um TClientDataSet criado temporariamente na memória.
Acho que esse curso pode te ajudar.
https://www.devmedia.com.br/curso/delphi-dbgrid-curso-completo/110
GOSTEI 0
Riccely Paula

Riccely Paula

08/11/2016

Olá Riccely, você podeira tentar usar um DbGrid buscando os dados de uma Query ou até mesmo de um TClientDataSet criado temporariamente na memória.
Acho que esse curso pode te ajudar.
https://www.devmedia.com.br/curso/delphi-dbgrid-curso-completo/110


Muito obrigado pela sua ajuda amigo, irei iniciar a aula, assim que terminar entro em contato novamente aqui mesmo.

Deus te abençoe!
GOSTEI 0
Riccely Paula

Riccely Paula

08/11/2016

Olá Riccely, você podeira tentar usar um DbGrid buscando os dados de uma Query ou até mesmo de um TClientDataSet criado temporariamente na memória.
Acho que esse curso pode te ajudar.
https://www.devmedia.com.br/curso/delphi-dbgrid-curso-completo/110


Preciso fazer com que, possa ser cadastrado ate 10 produtos diferentes mas no DBGrid fica assim:

Protudo1: Descrição, Vencimento_P1: 12/12/2012, quantidade_P1: 10, Produto2: Descrição2, Vencimento_P2:31/01/2017, Quantidade_P2:50

Existe alguma possibilidade de no DBGrid me mostrar assim:

Produto1: Descrição1 Vencimento_P1:12/12/2012 Quantidade_P1: 10
Produto2:Descrição2 Vencimento_P2: 31/01/2017 Quantidade_p2:50

E assim por diante...

Existe essa possibilidade?
GOSTEI 0
Riccely Paula

Riccely Paula

08/11/2016

O texto não formatou da maneira que eu queria.


Vou tentar explicar novamente.


Pelo que eu vi na aula, só é possível manipular os dados ja cadastrado na tabela.


A minha tabela tem esses campos:

Id, cliente, produto1... produto10, quantidade_p1... quantidade _p10, vencimento_p1... vencimento _p10.


Eu posso muito bem passar todos os DBEdit para o Form e deixar que o usuário preencha todos os campos, assim o programa iria rodar tranquilo.

Porém eu não queria fazer com que o Form fique com esse monte de DBEdit, pois a parte visual do Form fica muito grande.

A minha intenção era deixar apenas 4 DBEdits: Cliente, Produto, Quantidade e Vencimento. Quando o usuário terminasse de preencher os DBEdits, ele clicasse no Botao Inserir, e mostrasse em algum Componente o item que ele acabou de preencher, e caso ele queira adicionais mais produtos para o mesmo cliente, ele clicasse novamente no Botao Inserir, e assim mostrasse os dois produtos no componente, e após o usuário terminar de inserir os produtos, o sistema fizesem a leitura dos itens inseridos e gravasse no banco.


Agora acho que consegui me expressar.
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

08/11/2016

Crie um client dataset tmp.
coloque um dbgrid e associe ao client dataset tmp.

Todos os dados necessários devem ser preenchido no dbgrid.
Coloca um botão gravar , este por sua vez realizará um for no client dataset tmp, levando os dados temporários para o banco oficial.
Espero que ajude.
GOSTEI 0
POSTAR