Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Dair_Junior
Contributor II
Contributor II

Problema em dimensão hierárquica com cálculo de dimensão

Olá, pessoal!

Preciso de ajuda com uma dimensão hierárquica que estou tentando usar em um dash.
Eu tenho um banco de dados com histórico de 2 anos, em que devo comparar os resultados do ano atual (CY) e do ano passado (LY).
Eu estou usando um gráfico de combinação com um driil-down contendo as dimensões de mês e dia, e eu tenho um filtro onde eu posso escolher uma data específica do ano atual.
Quando nenhum valor é selecionado neste filtro, os rótulos dos meses são mostrados como uma descrição genérica de M0, M-1, M-2, M-3 ... (onde M0 representa o mês da data referência). Mas quando eu seleciono um valor de data, esses rótulos devem mostrar a descrição do mês real (FEV, JAN, DEZ, NOV ...).
Para criar esses rótulos dinâmicos, estou usando uma expressão calculada na dimensão hierárquica com uma variável para saber quando um valor é selecionado para a data de apresentação do filtro.
O problema é que, ao usar essa dimensão calculada, o efeito de drill-down não funciona corretamente, ao invés de apresentar os dias, apenas apresenta o mês selecionado consolidado.

Imagem 1: o gráfico 1 está configurado com a dimensão hierárquica calculada para exibir os labels dinâmicos, já o Gráfico 2 está com uma dimensão hierárquica "normal", sem cálculo. As barras laranjas são os valores deste ano (CY) e as cinzas do ano passado (LY).

ex001.PNG

 

Imagem 2: ao selecionar a data referência, os labels do Gráfico 1 são alterados corretamente.

ex002.PNG

 

Imagem 3: porém, ao selecionar um dos meses, para entrar no drill-down dos dias, o Gráfico 1 não exibe corretamente os dias, como deveria ser, igual no Gráfico 2.

ex003.PNG

No Gráfico 2, configurei uma dimensão hierárquica da seguInte forma:

Primeira dimensão:
      =If(IsNull(MES_LY)=0 ,MES_LY ,MES_CY)
Segunda dimensão:
      =If(IsNull(DAY_LY)=0,DAY_LY,DAY_TY)

E para o Gráfico 1:

Primeira dimensão:
       =If(IsNull($(v_DataReferencia))=0
                          ,$(v_MesDescricao)
                          ,$(v_MesGenerico)
         )
Segunda dimensão:
      =If(IsNull(DAY_LY)=0 ,DAY_LY ,DAY_TY)

As variáveis são:

v_MesDescricao:
      If(IsNull(MES_DESC_LY)=0 ,MES_DESC_LY ,MES_DESC_CY)

v_MesGenerico:
      If(IsNull(MES_LY)=0 ,MES_LY ,MES_CY)

v_DataReferencia:
       GetFieldSelections(DATA_REF)

 

Já tentei substituir as variáveis na dimensão calculada (dentro da dimensão hierárquica) pelas fórmulas explícitas, mas o resultado é o mesmo, pensei então que talvez o problema possa ser a utilização da função GetFieldSelections().

Alguém sabe o porque deste comportamento? E se é possível resolve-lo?

Desde já, agradeço a atenção!

Dair Junior
1 Reply
felipe87
Contributor II
Contributor II

Olha não sei se resolveria no seu caso, mas aqui estavamos com problemas de rótulos em uma dimensão hierarquica e achamos um jeito de resolver.

 

Para simplificar o nosso caso vamos dizer que a dimensão hierárquica era composta de dois campos:

1) um era uma fórmula com = aggr e if

2) era apenas o nome de um campo que já havia sido criado no item mestre.

 

Quando colocamos em uma tabela ao selecionar a dimensão 1 aparecia toda a fórmula, enquanto que ao fazer o drill down para o campo 2 , aparecia o nome do campo ( como queriamos).

 

Para resolver, criamos nos itens mestres uma outra dimensão que tinha o Nome de rotulo que queriamos que aparecesse no campo 1,  e a fórmula era igualzinha a fórmula do campo 1 = aggr e if.

 

E só isso. 

Não mudamos nada na tabela e ela começou a responder com o nome de rótulo. Parece que internamente ele fez a seguinte lógica

Nome correto =  x+y

Como na tabela estava a fórmula x+y   , ele mostrava no rótulo = Nome Correto.

 

Espero que tenha feito um pouco de sentido e ajude a resolver a questão.