8 Replies Latest reply: Jul 12, 2017 3:05 PM by Daniel Damato RSS

    Disparador para seleções

    Daniel Damato

      Ola a todos, estou com uma duvida que a principio me pareceu simples, mas estou apanhando.

       

      fiz um Load de uma tabela que preciso deixar vinculado ao Section Access para que cada cliente só veja seus dados. Isso ta ok.

       

      Só que preciso fazer um outro load de forma que cada cliente consiga ver o valor do grupo todo (só valores, para não ter como distinguir quem é quem). Até ai eu fiz também, fiz apenas o mesmo load de antes mas com todos os campos qualificados.

       

      Só que em ambas as tabelas eu tenho o campo data  que quebro em dois campos: ano e mês. Ou seja, ambos tem os mesmos dados.

       

      A duvida é: quando faço um filtro para a primeira tabela de ano e mês quero poder realizar a seleção e disparar uma ação para que os campos da segunda tabela que estão qualificados sejam os mesmos.

       

      Teoricamente eu faria isso pelos disparadores, mas tenho tentado e não estou conseguindo. Alguma dica?

        • Re: Disparador para seleções
          Yuri Nicolett

          Eu acho que o caminho pode ser outro. Você só precisa do valor consolidado, porque não cria essa tabela com o valor consolidado e liga o seu modelo apenas pela Data (mês+ano), desta forma a seleção do mês já funcionária.

          A redução do cliente não atrapalha o seu resultado consolidado

            • Re: Disparador para seleções
              Daniel Damato

              Oi Yuri, esse foi um modelo que fiz e saiu do jeito que disse, mas o problema daí é que clientes que realizaram compras em X data ou que entraram no sistema a partir de tal data só conseguirão visualizar os dados consolidados dessas datas ou a partir de então. O que não é o objetivo. A ideia é que ele consiga ver o histórico do banco de dados mesmo de antes dele participar do mesmo. Relacionar as datas limita essa visão.

            • Re: Disparador para seleções
              Thiago Manoel Gonçalo

              Daniel, boa tarde!

               

              Se eu entendi bem, o que você precisa é, que ao selecionar um ano e mês que esta vinculado a primeira tabela, você possa ao clicar em um botão que ele replique os dados para a outra tabela.. que provavelmente tem tambem um filtro de ano e mês para essa tabela..

               

              Se for isso. tente fazer assim..

              Nos disparadores, você coloca uma ação, SELECIONAR NO CAMPO. nos parâmetros será o seguinte..

               

              CAMPO::::

              INFORME O CAMPO DE ANO DA TABELA 2.

               

              PESQUISAR CARACTERES::

              if(GetSelectedCount(CAMPO_ANO_TABELA1)>0 , '('&Concat(Distinct CAMPO_ANO_TABELA1,'|')&')')

              // A expressão acima vai verificar se foi selecionar algum ano na tabela 1 e ira concatenar os anos para passar ao campo ano da tabela 2.

               

              Faça o mesmo para o mês.

               

              Espero ter ajudado.

              • Re: Disparador para seleções
                Daniel Damato

                nicolett.yuri A lógica faz bastante sentido, "simular" que o cara teve atividade anteriormente. Vou testar.

                 

                @Thiago fiz essa expressão no disparador e ficou excelente, é bem o que eu queria mesmo. Vou testar com o bando todo pra ver como vai ficar o desempenho em comparação ao que o Yuri sugeriu também.

                 

                Vi que quando eu limpo a seleção do campo ano da tabela 1 por exemplo, ele não tira a seleção do campo ano da tabela 2. Tentei incrementar esse if para jogar nullo quando não tiver seleção, mas não deu certo. Tentei criar um segundo disparador, mas ai ele conflita com o primeiro.

                Tem alguma ideia de como posso fazer essa etapa?

                • Re: Disparador para seleções
                  Thiago Manoel Gonçalo

                  Daniel,

                   

                  Se a ideia for, que esses filtros, da tabela 1 e tabela 2, sempre fiquem com a mesma seleção, então podemos fazer o seguinte:

                   

                  Coloque 2 novas ações no disparador, antes das ações dos campos de ano e mês que você já fez. As ações são:

                   

                  LIMPAR CAMPO = CAMPO DE ANO DA TABELA 2

                  LIMPAR CAMPO = CAMPO DE MES DA TABELA 2

                   

                  Ou seja, sempre que esse disparador for ativado, antes de pegar a seleção da tabela 1, ele irá limpar a sua própria seleção e depois pegar os novos parâmetros..

                   

                  Qualquer dúvida à disposição.

                   

                  Abraços.

                  • Re: Disparador para seleções
                    Daniel Damato

                    Mas sem problemas, o disparador do que eu precisava funcionou perfeitamente, vou ter de fazer uma estruturo mais parecida com o que o Yuri disso, porque vi que precisarei relacionar algumas dimensões. Então terei de criar chaves extras pra conciliar isso.

                     

                    Mas a solução do disparador do Thiago ficou perfeito.

                     

                    Obrigado