Autor Tópico: Pesquisar com Campos em Lookup  (Lida 2073 vezes)

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Pesquisar com Campos em Lookup
« Online: Janeiro 12, 2015, 11:18:06 am »
Tenho aplicação grid, e tenho vários campos que não estão na base, puxo eles por lookup em outra base, um exemplo é o campo cpf, busco de outro banco, a questão é que quero buscar pelo número do cpf na grid, e ele não busca. Alguém sabe como resolver isto?

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #1 Online: Janeiro 12, 2015, 01:20:31 pm »
Você pode criar um campo no filtro (nome do campo deve ser diferente da grid ex: CPF na grid CPF_FILTRO no filtro) e no evento onScriptInit da Grid verificar
if(!empty({CPF_FILTRO}))
{
   sc_select_where(add) = " AND CAMPOCHAVE IN (SELECT PARA TABELA CPF QUE RETORNA O CAMPO CHAVE WHERE CPF = '{CPF_FILTRO}') ";
}

E assim por diante.


joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #2 Online: Janeiro 12, 2015, 02:06:44 pm »
Você pode criar um campo no filtro (nome do campo deve ser diferente da grid ex: CPF na grid CPF_FILTRO no filtro) e no evento onScriptInit da Grid verificar
if(!empty({CPF_FILTRO}))
{
   sc_select_where(add) = " AND CAMPOCHAVE IN (SELECT PARA TABELA CPF QUE RETORNA O CAMPO CHAVE WHERE CPF = '{CPF_FILTRO}') ";
}

E assim por diante.



Mas a questão que a grid está saindo de uma banco(Mysql) e o lookup que estou fazendo para o cpf é outro(Firebird), como ficaria então o "SELECT PARA TABELA CPF QUE RETORNA O CAMPO CHAVE WHERE CPF = '{CPF_FILTRO}'"?

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #3 Online: Janeiro 13, 2015, 10:50:56 am »
Você pode criar um campo no filtro (nome do campo deve ser diferente da grid ex: CPF na grid CPF_FILTRO no filtro) e no evento onScriptInit da Grid verificar
if(!empty({CPF_FILTRO}))
{
   sc_select_where(add) = " AND CAMPOCHAVE IN (SELECT PARA TABELA CPF QUE RETORNA O CAMPO CHAVE WHERE CPF = '{CPF_FILTRO}') ";
}

E assim por diante.



Mas a questão que a grid está saindo de uma banco(Mysql) e o lookup que estou fazendo para o cpf é outro(Firebird), como ficaria então o "SELECT PARA TABELA CPF QUE RETORNA O CAMPO CHAVE WHERE CPF = '{CPF_FILTRO}'"?

O problema é que na grid possui campos que são daquele banco de dados(Mysql), mas tem campos que faço um lookup em outro banco(Firebird), o que ocorre que na pesquisa rápida quando faço uma busca de um dos campos que possui lookup, ele diz que não existe, e eu percebi que quando clico em cima do título da coluna da grid para ordenar, ele parece que faz a ordenação não em cima do nome, mas em cima da id daquele lookup, imagino que não faz busca pelo nome que aparece também, mas em cima da id, e preciso que a busca rápida funcione pelo nome, afinal ninguém vê id, e não tem como deixar isto...

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Pesquisar com Campos em Lookup
« Responder #4 Online: Janeiro 13, 2015, 10:52:40 am »
a pesquisa rapida so vai funcionar em cima das tabelas do select principal da grid

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #5 Online: Janeiro 13, 2015, 10:54:37 am »
a pesquisa rapida so vai funcionar em cima das tabelas do select principal da grid

Sabe me dizer como posso disponiblizar uma pesquisa para o usuário? Se a pesquisa rápida não funciona...?

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #6 Online: Janeiro 13, 2015, 10:54:44 am »
Nesse caso você terá que adicionar o campo cpf ao seu banco mysql a usar ele.

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #7 Online: Janeiro 13, 2015, 10:55:43 am »
Teste a pesquisa rápida selecionando menos campos (no caso apenas o CPF).

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #8 Online: Janeiro 13, 2015, 10:56:27 am »
Teste a pesquisa rápida selecionando menos campos (no caso apenas o CPF).
Fiz isto, não funcionou...

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #9 Online: Janeiro 13, 2015, 10:57:49 am »
qual a chave de ligação mysql para firebird pegando o cpf?

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #10 Online: Janeiro 13, 2015, 11:02:36 am »
qual a chave de ligação mysql para firebird pegando o cpf?

A ligação de tudo é feita através da chave primária da tabela cliente, tenho uma tabela no Firebird, CAD001 que possui todas as informações do cliente, nome, cpf, celular... e em outros lugares, no outro banco(mysql) eu puxo a id, quando eu preciso de outras informações faço um lookup comparando a id do cliente, e chamo a informação que quero.

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #11 Online: Janeiro 13, 2015, 12:31:02 pm »
Só se vc mudar essa consulta para ser do firebird e trazer alguns lookups do mysql.
Assim os campos do filtro pode ser do firebird.

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #12 Online: Janeiro 13, 2015, 01:58:11 pm »
Só se vc mudar essa consulta para ser do firebird e trazer alguns lookups do mysql.
Assim os campos do filtro pode ser do firebird.

Eu até fiz outra consulta da forma que você falou, mas eu também terei consultas dos campos que tem no mysql, aí terei a mesma situação.... cairei no mesmo problema...?

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #13 Online: Janeiro 13, 2015, 02:28:53 pm »
Bom acho que a melhor solução é repetir os dados nas bases diferentes mesmo.
Tipo campo CPF nas 2 bases...

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #14 Online: Janeiro 13, 2015, 09:14:03 pm »
Nesse caso você terá que adicionar o campo cpf ao seu banco mysql a usar ele.
Eu fiz isto também, mas não funcionou, e fazendo o lookup em cima do campo