Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Disparador para seleções

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?

Labels (2)
1 Solution

Accepted Solutions
thiago_mlg
Creator II
Creator II

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.

View solution in original post

8 Replies
nicolett_yuri

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

Not applicable
Author

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.

nicolett_yuri

Sim, você tem razão.

Estamos falando apenas de Mês/Ano, correto? Você poderia criar os meses faltantes para todos os clientes para apontar a essa tabela de total.

thiago_mlg
Creator II
Creator II

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.

Not applicable
Author

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?

thiago_mlg
Creator II
Creator II

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.

Not applicable
Author

eu tentei, mas não deu certo. tirar a seleção acho que não dispara a ação.

Not applicable
Author

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