Skip to content
  • Categorias
  • Recente
  • Tags
  • Popular
Collapse
Brand Logo

  1. Fórum Maker
  2. Categorias
  3. Formulários e Componentes
  4. Filtro em lista dinâmica

Filtro em lista dinâmica

Agendado Fixado Trancado Movido Formulários e Componentes
4 Posts 2 Posters 370 Visualizações 1 Watching
  • 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
    escreveu em ú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
      escreveu em ú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
        escreveu em ú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
          escreveu em ú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
          Responder
          • Responder como tópico
          Entre para responder
          • Mais Antigo para Mais Recente
          • Mais Recente para Mais Antigo
          • Mais Votados


          • Login

          • Não tem uma conta? Cadastrar

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