• Categorias
  • Recente
  • Tags
  • Popular
Collapse

Filtro em lista dinâmica

Agendado Fixado Trancado Movido Formulários e Componentes
4 Posts 2 Posters 316 Visualizações
    • Mais Antigo para Mais Recente
    • Mais Recente para Mais Antigo
    • Mais Votados
Responder
  • Responder como tópico
Entre para responder
Este tópico foi deletado. Apenas usuários com privilégios de moderação de tópico podem vê-lo.
  • A Offline
    A Offline
    AlexSantos
    wrote on última edição por
    #1

    Tenho um formulário que preciso fazer um filtro no componente "lista dinâmica" =, conforme o usuário que estiver logado.

    Até ai tudo bem, fiz um função que ao logar no sistema, cria uma variável de sessão com a filial que este usuário pertence e o filtro funciona corretamente. o problema está quando um gerente loga no sistema e precisa ver todas as filiais.
    Já tentei criar a variável como letra e variante, mas sempre que vai mostrar a lista para o gerente não mostra nada.

    Sendo que para o usuário normal gera um único código Ex.: 1
    Para o gerente gera uma lista. EX.: 1,2,3,4

    Alguma dica do que fazer?

    1 Resposta Última resposta
    0
  • M Offline
    M Offline
    Marcos Reis
    wrote on última edição por
    #2

    @AlexSantos você pode utilizar o filtro com IN, segue exemplo de utilização com a tabela FR_ACAO:

    Select
    fr_acao.aco_codigo,
    fr_acao.aco_nome
    From
    fr_acao
    Where
    fr_acao.aco_codigo In (1, 2, 3)

    Dessa forma vai trazer os registros com o ID 1 ,2 ,3.

    Basta adaptar agora para a sua necessidade.

    1 Resposta Última resposta
    0
  • A Offline
    A Offline
    AlexSantos
    wrote on última edição por
    #3

    Obrigado Marcos pela resposta.
    Eu usei o filtro com IN, mas como o dado vem de uma variável de sessão, eu utilizei o filtro assim:

    where
    fr_acao.aco_codigo In (:FUNCAO_sessao_clinv). 
    

    Quando a variável é com somente um valor funciona corretamente, mas quando tem dois ou mais, não funciona.
    Preciso saber como construo esta variável de sessão para funcionar com o IN, quando tem mais de um valor. Ou se altero algo no select da lista dinâmica.

    Mais uma vez obrigado.

    1 Resposta Última resposta
    0
  • M Offline
    M Offline
    Marcos Reis
    wrote on última edição por
    #4

    Ai nesse caso você deveria realizar um subselect para compor o IN, que seria nessa linha:

    select 
      filial.fil_codigo, 
      filial.fil_nome 
    from 
      filial 
    where 
      filial.fil_codigo in (select usuario_filial.fil_codigo from usuario_filial where usuario_filial.usr_codigo = <código do usuário>)
    

    Com isso iria retornar as filiais que ele tem acesso.

    Basta adaptar a ideia para o que você necessita.

    1 Resposta Última resposta
    0

  • Login

  • Não tem uma conta? Cadastrar

  • Login or register to search.
  • Primeiro post
    Último post
0
  • Categorias
  • Recente
  • Tags
  • Popular
  • Login

  • Não tem uma conta? Cadastrar

  • Login or register to search.