... sql
22/05/2003
0
É o seguinte ... tenho duas tabelas PRODUTOS e FORNPRODUTOS (CODFORN), pq FORNPRODUTOS? é que fiz no meu cadastro de produtos uma opção para receber mais de um fornecedor ... permitindo até 5 até ai blz ... agora tenho uma tabela CHAMA ITEMCOTACAO que Possue os campos CODPED, CODPROD, CODFORN1,CODFORN2, CODFORN3, CODFORN4,CODFORN5, VALORFORN1,VALORFORN2... o que q acontece, tipo ao digitar o cod do produto no campo CODPROD da tabela ITEMCOTACAO automaticamente ele deve preencher o campo CODFORN1,CODFORN2 e assim vai com os valores da tabela FORNPRODUTOS ... dai basta eu colokar o valor para cada fornecedor ... tudo isso em um grid ... mas ta muuuito .. outra não deve mostra o codigo e sim o nome do fornecedor ... alguém pode me dar uma mão??
Fer
Posts
22/05/2003
Leomurray
Cara,
Não entendi muito bem o que vc quer fazer, mas a principio tá mal modelado...
Vc não tem que ter os campos CODFORN1, CODFORN2, etc. e nem VALORFORN1, VALORFORN2, etc.
Se vc tiver CODFORN e VALORFORN já são suficientes...
O seu Grid tem que estar ligado a um TQuery e o SQL tem que ser mais ou menos isso:
Select
P.NOME, //NOME DO PRODUTO
F.NOME, //NOME DO FORNECEDOR
IC.VALORFORN //VALOR
FROM
PRODUTOS P,
FORNPRODUTOS F,
ITEMCOTACAO IC
WHERE
P.CODPROD = IC.CODPROD AND
F.CODFORN = IC.CODFORN
Mais ou menos isso... Se vc explicar melhor (pontuando direito seu post) vai ficar mais facil te ajudar!
22/05/2003
Cac2000
Eu acho que vc está equivocado na forma que vc criou a tabela ITEMCOTACAO. A ITEMCOTACAO deveria ter os seguintes campos:
CODPED, CODPROD, CODFORN, VALORFORN e só!!!
Afinal, vc sem sempre vai ter 5 cotações para um produto. Talvez vc só tenhas duas cotações e do seu jeito iria ficar 3 campos vazios. Alem disso, um dia pode aparecer um produto que tenha mais que 5 cotações, aí vc vai ter que ficar arrumando o seu programa.
Pela minha sugestão, a tabela ITEMCOTACAO deve receber a chave da FORNPRODUTOS (que é CODPROD, CODFORN), mais a chave da tabela PEDIDOS (que é CODPED).
A sua tela vc deve seguir uma estrutura de Cabeçalho e Item, onde no cabeçalho vc coloca um DBEdit (ou algum tipo de Combo) que fica o código do produto.
No item, vc usa um DBGrid, que irá estar vinculado a ITEMCOTACAO, e cada linha no DBGrid vai ser uma cotação para o produto especificado acima. Claro, só podem ser aceitos fornecedores nesse Grid que estão presentes na tabela FORNPRODUTOS para o produto digitado.
Garanto que vc não vai se arrepender em mudar seu esquema, é muito mais maleável, mais gerenciavel.
Pense nisso, imagine que um dia o Gerente de Compras quer as melhores cotações para o produto X ao longo de um período. Se vc usar 5 campos, iria ser complicadíssimo achar... mas o valor sendo só um campo, vai ser muito mais fácil.
Boa sorte...
22/05/2003
Leomurray
FeR, o cac2000 está perfeito...
O DBGrid vai ser exatamente a imagem da sua tabela com só com os registros do item selecionado no Combo (por exemplo)... A partir daí é só manipular os dados no DBGrid.
Abraços...
Clique aqui para fazer login e interagir na Comunidade :)