Fórum Select com Mestre Detalhe #496438
02/10/2014
Boa Tarde, pessoal estou com um problema e a vários dias tentando solucionar e não consigo e o seguinte:
Tenho a Tabela ESTOQUE_PRODUTOS com os seguinte campos: ID_ESTOQUE, ID_PRODUTO, SALDO, SALDO_RESERVA aonde ID_ESTOQUE E ID_PRODUTOS são chaves primarias e secundarias da tabela fazendo referencia as tabelas PRODUTO E ESTOQUE , e preciso de um select que traga só os produtos que não estão em um estoque para pode inserir depois.
Posts
02/10/2014
Marlon Minotti
Não entendi muito bem sua pergunta, pode ser mais específico? Me parece que você tem uma tabela Produtos, Estoque, e Estoque_Produto. Primeiro, qual a finalidade da tabela Estoque_Produto? Segundo, especifique melhor sua pergunta.
02/10/2014
Kledson Campos
Bom Marlon, a tabela estoque_produtos ficam armazenado os produtos por estoque aonde trabalho com vários estoques e nessa tabela fica os produtos que pertencem aos estoques.
ex: tenho estoque vendas, deposito e posso ter produtos em vendas que não tem em estoque e ai vai como posso ter uma quantidade de um certo produto no deposito e outro na no estoque vendas.
02/10/2014
Marlon Minotti
Tá! com base no que você me disse, o que exatamente você precisa? De um select que faça o que?
02/10/2014
Kledson Campos
No cadastro de estoque tem uma grid que mostrar os produtos do estoque e em baixo tem um botão de incluir os produtos no estoque, ai ao clicar abre um form que pesquiso os produtos que falta incluir no estoque, por isso que falei que precisaria um select aonde mostre só os produtos que não estão no estoque especifico.[img:descricao=Print da Tela de cadastro e de pesquisa de produto. ]http://arquivo.devmedia.com.br/forum/imagem/315270-20141002-204125.jpg[/img]
No cadastro de estoque tem uma grid que mostrar os produtos do estoque e em baixo tem um botão de incluir os produtos no estoque, ai ao clicar abre um form que pesquiso os produtos que falta incluir no estoque, por isso que falei que precisaria um select aonde mostre só os produtos que não estão no estoque especifico.[img:descricao=Print da Tela de cadastro e de pesquisa de produto. ]http://arquivo.devmedia.com.br/forum/imagem/315270-20141002-204125.jpg[/img]
Vamos ver se eu entendi para poder te ajudar.
Você tem um tabela de cadastro de produtos e tem uma tabela do estoque. Você quer saber quais os produtos que não estão inseridos da tabela estoque para poder inseri-los é isso?
02/10/2014
Kledson Campos
Isso, preciso saber quais os produtos que não estão no estoque para pode inserir.
Não vou testar o código, testa aí, mas seguindo um lógica rápida...
Digamos que vc tem a tabela produtos e a tabela estoque.
Produtos -> Id_produto, produto
Estoque -> Id_produto, qtd
While not produto.eof do
begin
with estoque do
begin
close;
sql.clear;
sql.add('select id_produto from estoque where id_produto ='+ quotestr(produto.fieldbyname('id_produto').value));
open;
if produto.recordcount = 0 then
begin
showmessage('Produto não está em estoque e será cadastrado...');
estoque.append;
estoque.fieldbyname(id_produto).asinteger := produto.fieldbyname('id_produto').value;
estoque.fieldbyname(qtd).asinteger := você trata a forma como vai inserir do jeito que achar melhor...
estoque.post;
end;
end;
produto.next;
end;
Uma correção; não é "if produto.recordcount = 0 then" e sim "if estoque.recordcount = 0 then"
02/10/2014
Kledson Campos
ok, vou testar e te digo, mais são 3 tabela: produtos, estoques e estoque_produtos . Aonde estoque_produtos tem os seguintes campos: id_produto, id_estoque no qual são chaves primarias e estrangeiras.
Só você fazer a junção das tabelas na query, creio que a tabela estoque_produtos indica o que esta disponível e a estoques a quantidade. Se for isso vc faz a consulta da forma como que creio que vai dar certo, usando as tabelas produtos e estoque_produtos e na hora de inserir vc faz a inserção simultânea na tabela estoque_produtos e estoques.
02/10/2014
Kledson Campos
Olha só como e que estar a estrutura do banco.
[img:descricao=Tabela]http://arquivo.devmedia.com.br/forum/imagem/315270-20141002-224532.jpg[/img]