Autor Tópico: Pesquisa avançada não funciona com campos criados.  (Lida 426 vezes)

joni morais

  • Avançado
  • ****
  • Mensagens: 250
    • Email
Pesquisa avançada não funciona com campos criados.
« Online: Junho 16, 2016, 11:23:39 am »
Srs. bom dia. Possuo campos criados em uma grid e a pesquisa avançada não funciona. Não filtra a consulta pelo que selecionei na pesquisa. Nos campos normais da tabela, constante no SQL, funciona normalmente. Estou esquecendo algum detalhe?!
Shared Host Linux;
10.1.13-MariaDB-cll-lve;
SC 8.1.051

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 885
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #1 Online: Junho 16, 2016, 11:33:32 am »
Como está fazendo? Provavelmente não está passando os valores dos campos selecionados no filtro. Precisa também usar a macro sc_select_where(add) no eventot onScriptInit da consulta.
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

joni morais

  • Avançado
  • ****
  • Mensagens: 250
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #2 Online: Junho 16, 2016, 11:53:47 am »
Fala xará do meu filho! Então a coisa não é tão simples... Não entendi Thyago. O filtro é o da própria aplicação grid. Apenas criei os campos e pensava que já estariam prontos para serem usados no filtro. Explicando melhor é uma aplicação de pacientes médicos com dois campos criados(convênio e valor do convênio) que estão na tabela convênio. O vinculo e entre a tabela paciente e convênio. Na grid, pelo id do paciente pucha os valores nos campos criados.
« Última modificação: Junho 16, 2016, 12:37:51 pm por joni morais »
Shared Host Linux;
10.1.13-MariaDB-cll-lve;
SC 8.1.051

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 885
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #3 Online: Junho 16, 2016, 01:09:59 pm »
Certo Joni. Esses campos vc tem que passar os valores pra uma variável global e no evento onScriptInit, usar a macro sc_select_where(add).

Por ex:
Código: [Selecionar]
if (empty({sc_where_atual}) && !empty([variavel_global])){
     sc_select_where(add) = "where campoX = [variavel_global]";
}
else if (!empty({sc_where_atual}) && !empty([variavel_global])){{
     sc_select_where(add) = "AND campoX > [variavel_global]";
}

Nesse caso, empty({sc_where_atual}) verifica se foi passado alguma informação de campo que já faz parte da aplicação, sem ser esses campos criados.

Espero que esteja simples minha explicação.
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

joni morais

  • Avançado
  • ****
  • Mensagens: 250
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #4 Online: Junho 16, 2016, 01:20:00 pm »
Vlw. Vou dar uma verificada e retorno. Obrigado!
Shared Host Linux;
10.1.13-MariaDB-cll-lve;
SC 8.1.051

joni morais

  • Avançado
  • ****
  • Mensagens: 250
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #5 Online: Junho 16, 2016, 01:32:17 pm »
Thyago, desculpe não te entender, mas acho que não é isso. Digo em relação aquelas condições de filtro (exatamente igual, inicio igual, diferente, contém, etc). Selecionando, por exemplo, contém o convênio AMIL, não filtra pelo respectivo convênio!
Shared Host Linux;
10.1.13-MariaDB-cll-lve;
SC 8.1.051

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 885
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #6 Online: Junho 16, 2016, 02:07:12 pm »
Mostra aí como você está fazendo. Manda print da tela também.
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

joni morais

  • Avançado
  • ****
  • Mensagens: 250
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #7 Online: Junho 16, 2016, 02:45:57 pm »
Após selecionar pesquisa avançada...


E escolher contém PROASA...


Deveria filtrar somente os registros com esse convênio, não ?!


Os campos CONVÊNIO E REPASSE são campos criados e se comportam da mesma forma. Não filtram!!
Shared Host Linux;
10.1.13-MariaDB-cll-lve;
SC 8.1.051

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 885
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #8 Online: Junho 16, 2016, 03:08:28 pm »
Não, nessa opção ele traz os registros que tenham convenio que contenha a palavra PROASA. De qualquer forma, se o campo é criado na aplicação, vc precisa seguir o exemplo que citei acima.
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

joni morais

  • Avançado
  • ****
  • Mensagens: 250
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #9 Online: Junho 16, 2016, 03:20:28 pm »
Obrigado Thyago. Irei pesquisar.
Shared Host Linux;
10.1.13-MariaDB-cll-lve;
SC 8.1.051

joni morais

  • Avançado
  • ****
  • Mensagens: 250
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #10 Online: Junho 16, 2016, 03:35:53 pm »
Thyago, como seria "passar os valores dos campos selecionados no filtro para uma variável global"? É no evento onRecord? O webhelp não ajudou muito. Acredito que isso seja coisa simples, mas ainda não "peguei" o "x" da questão!
Shared Host Linux;
10.1.13-MariaDB-cll-lve;
SC 8.1.051

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 885
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #11 Online: Junho 16, 2016, 03:48:02 pm »
No filtro, tem o evento onValidate.
Por ex:
[v_convenio] = {convenio};
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

noelreis

  • Novato
  • *
  • Mensagens: 35
  • CUIDADO APRENDIZ...
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #12 Online: Junho 17, 2016, 08:58:20 pm »
Pelo que eu entendi você não fez o SELECT no campo que você criou. Não basta criar o campo, é necessário fazer um SELECT para o Banco de Dados.
Programadores são ferramentas para converter cafeína em código.

joni morais

  • Avançado
  • ****
  • Mensagens: 250
    • Email
Re:Pesquisa avançada não funciona com campos criados.
« Responder #13 Online: Junho 17, 2016, 11:50:09 pm »
O SELECT já foi no banco e buscou os dados referentes ao id! Consultas em campos criados do tipo texto auto-complite não funcionam em nenhum filtro (pesquisa avançada, filtro dinâmico,  quick search, e filtro refinado). De qualquer modo resolvi mexer no diagrama de classes para contornar o problema. Não consegui do jeito que o Thyago recomendou. Mais à frente testo isso com calma.
« Última modificação: Junho 20, 2016, 08:51:57 am por joni morais »
Shared Host Linux;
10.1.13-MariaDB-cll-lve;
SC 8.1.051