Página 1 de 1
Busca em Campo Relacionado.
Enviado: 09 Ago 2005 08:44
por Marcos
Olá a todos do fórum,
Há tempos atras fiz uma pergunta aqui sobre este assunto mas não obtive respostas.
Como fazer uma busca num registro pelo campo que está relacionado a outro DBF?
Digamos que no DBF Contas a Receber eu tenho o Código do Cliente, onde no DBEDIT usando o Set Relation eu monto mostrando o Nome do Cliente, até aí blz, agora pergunto, como fazer uma pesquisa com Seek no DBEDIT de Conta a Receber pelo Nome do Cliente?
Abraços,
Marcos.
Enviado: 11 Ago 2005 02:33
por Stanis Luksys
Olá,
Deixa eu ver se entendi direito...
Você relacionou o campo "CODIGO_CLIENTE" do dbf de Clientes com o um outro de mesmo conteúdo no dbf de Contas a Receber usando SET RELATION... é isso?
Então voce quer pesquisar pelo NOME do cliente...
Selecione o Arq de clientes pesquise o nome e depois volte ao arquivo de Contas e pesquise o código do cliente, mais ou menos assim:
Código: Selecionar todos
select CLIENTES
set index to IND_NOME
dbGoTop()
seek variavel_Nome
if found()
select CONTAS
seek CLIENTES->campo_CODIGO // Neste momento o pointer ja está posicionado no registro do cliente
else
alert("Nome nao encontrado")
select CONTAS
endif
Note que o fato de ter sido encontrado o Nome do Cliente no primeiro seek não implica que o código dele exista no arquivo de Contas e portanto é necessário testar de novo com FOUND() no segundo SEEK.
Note também que pode existir mais de uma vez o código do cliente no arquivo de Contas e que portanto poderia ser mais útil usar a função LOCATE...CONTINUE, ou até mesmo filtrar o arquivo de contas para exibir apenas as Contas deste cliente...
Espero ter ajudado
Enviado: 11 Ago 2005 09:08
por Marcos
Obrigado Stanis Luksys pela ajuda, funcionou blz, o único problema é que quando o registro é encontrado o Campo que está relacionado no caso o Nome do Cliente some do DBEDIT, ou seja, o registro é encontrado pelo cursor que fica em cima do registro, mas o nome que é o Campo que está relacionado some.
Abraços,
Marcos.
Enviado: 15 Ago 2005 08:27
por Marcos
Alguém poderia me dar uma força, estou precisando des Função para atualizar no Cliente.
Abraços, e boa semana a Todos.
Marcos.
Enviado: 17 Ago 2005 16:11
por Marcos
Pessoal desculpe ser insistente é que estou precisando urgente da Função, ao buscar o registro usando o Seek o campo que está relacionado está sumindo, já lutei para arrumar e não consegui, peço novamente a ajuda, estou realmente precisando.
Marcos
Enviado: 17 Ago 2005 16:38
por Stanis Luksys
Ok,
Acho que só está faltando voce colocar um RETURN(2) na UDF que controla o dbEdit().
Att
Enviado: 17 Ago 2005 16:59
por Marcos
Eu já coloquei este Return(2) em todos os possiveis lugares e nada!
Enviado: 17 Ago 2005 17:33
por Stanis Luksys
Ok,
Tente salvando o numero do registro numa variavel, depois vc abandona a execucao do dbEdit, e abre de novo e dé um dbGoTo(var).
Não é uma gde solução mas... uma gambiarra de vez em qdo não faz a mal a ninguém...
Att,