... sql

22/05/2003

1

Ola ...
É 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??


Responder

Posts

22/05/2003

Leomurray

:shock:

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!


Responder

22/05/2003

Cac2000

Caro colega,

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...


Responder

22/05/2003

Leomurray

cac2000, acho que eu entendi a duvida do cara com a sua explicação...

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...


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira