Fórum Dúvidas para implementar campos Lookup #53473

21/10/2005

0

Bom dia a todos..
Estou migrando uma aplicação do Paradox para o Firebird e estou com seguinte dúvida..
Não estou sabendo implementar um campo de lookup..
Ex: Eu tenho uma tabela de cidades e nas tabelas de Clientes,Fornecedores,Vendedores tenho o campo código da cidade definido como FK, até ai tudo bem eu qdo estou cadastrando a partir do momento que o usuário seleciona a cidade eu mostro o código e o nome, mas e qdo eu estive em modo [b:d531d42c6e]dsBrowse[/b:d531d42c6e]?
Poderia fazer um campo de lookup no fields editor, mas para isto a tabela de cidades teria que ficar aberta, agora imaginem no caso de pedidos onde eu tenho vendedores,clientes, transportadoras,condição de pagamento.
Pois no paradox qdo crio um campo de lookup ele automaticamente abre a tabela source.
Como vc´s estão implementando isto?
Estou utilizando [b:d531d42c6e]Delphi 7,FB 1.5 com DBExpress[/b:d531d42c6e].

Grato
Fausto


Faustoalves

Faustoalves

Responder

Posts

21/10/2005

Gandalf.nho

Em bancos de dados cliente/servidor não é aconselhável o uso de campos lookup, use querys em vez disso


Responder

Gostei + 0

21/10/2005

Faustoalves

Sim, entendi, mas meu problema esta justamente em como implementar isto na minha aplicação.
por exemplo tenho o pedido onde tenho como FK, CD_Cliente,CD_Transportre,CD_Vendedor, CD_CondPagto.
Pois bem, cada um destes campos se refere a outra tabela que eu gostaria de mostrar no form de consulta, como faço isto, pois não consigo enxergar o túnel quem dirá a luz no final dele.

Fausto


Responder

Gostei + 0

21/10/2005

Afarias

se a tabela é pequena (poucos registros) vc pode implementar um lookup tnormalmente, ou até de forma ´manual´ carregando os dados em uma tabela de memória.

para o caso de clientes, fornecedores e tals, deixe o usuário digitar uma informação chave (cgc, cpf, código, ...) e ao digitar faça a consulta no banco para trazer as informações pertinentes desse único registro

de forma mais avançada, permita q quando o usuário clique em um botão e/ou tecla especícifa abra uma tela de consulta onde ele pode buscar por parte do nome ou sei lá o q mais... dai ele escolhe em um grid qual é o registro q procura, dando OK vc captura isso


T+


Responder

Gostei + 0

21/10/2005

Faustoalves

Sim, entendi, isto eu faço em minhas consultas, onde também tenho a opção dele procurar por código ou nome, estou me referindo ao fato de qdo estiver consultando um cliente,digamos, para alteração como faço para que no form de clientes apareça a cidade na qual ele esta ligado?

Ele digita o número do pedido, tenho um form para pesquisas.. então ele pode pesquisar e me retornar o pedido, mas o problema esta em como mostrar informações de outras tabelas que mantém vinculos com ela através de FK´s.
Ex:

[b:53464688dd]
Nº Pedido : 5254
Cliente : 1056 JO CALCADOS [color=red:53464688dd]FK[/color:53464688dd]
Transportadora: 35 TRES MAIENSE [color=red:53464688dd]FK[/color:53464688dd]
Vendedor : 20 JOAL DOS REIS [color=red:53464688dd]FK[/color:53464688dd]
[/b:53464688dd]
Não sei se fui claro neste exemplo..

Fausto[color=red:53464688dd][/color:53464688dd]


Responder

Gostei + 0

21/10/2005

Vinicius2k

Colega,

Se a questão é ´exibição´, utilize JOINs nas querys, ex:

select 
  P.IDPEDIDO, 
  P.IDCLIENTEFK,
  C.NOMECLIENTE,
  P.IDTRANSPORTADORAFK,
  T.NOMETRANSPORTADADORA,
  P.IDVENDEDORFK,
  V.NOMEVENDEDOR
from
  PEDIDOS P
left join
  CLIENTES C on (P.IDCLIENTEFK = C.IDCLIENTE)
left join
  TRANSPORTADORAS T on (P.IDTRANSPORTADORAFK = T.IDTRANSPORTADORA)
left join
  VENDEDORES V on (P.IDVENDEDORFK = V.IDVENDEDOR)
...


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar