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

Relatório AD-HOC

Fala pessoal, tudo beleza?

Afinal, o que é e como construir um relatório ad-hoc?

Em primeiro lugar precisamos entender o termo ad-hoc.

Sempre que utilizamos o termo ad-hoc, estamos se referindo a algo temporário e que se destina para um fim específico.

Neste tipo de relatório, geralmente, construímos um tabelão em que o usuário seleciona as dimensões e expressões que necessitam visualizar. Engraçado é a palavra temporário, pois se tratando de uma ferramenta super poderosa um simples tabelão não pode ser vinculado ao BI de uma grande corporação.

Opinião: Sabemos que isso não é verdade. O layout é importante? Muito, mas o objetivo principal é conseguir atender as necessidades do cliente da melhor maneira possível. Se para atender essa necessidade eu preciso desenvolver apenas tabelas, então bora :D!

Como falado anteriormente, podemos desenvolver o relatório ad-hoc apenas dentro de um tabelão ou então fazer o próprio usuário escolher o tipo de gráfico. Para esse primeiro post do assunto, irei demonstrar apenas a funcionalidade do usuário selecionar as dimensões e expressões que pretende visualizar dentro de um tabelão.

Em primeiro lugar precisamos criar um campo com as possíveis dimensões e outro com as expressões.

IMPORTANTE: A nomenclatura desse campo deve respeitar o prefixo utilizado na função HidePrefix, pois estes campos não deverão estar disponíveis para nossos usuários desenvolvedores (com licença named).

Vamos para o script!

1° Passo) Crie uma aba chamada AD-HOC e crie os campos (no meu exemplo vou utilizar INLINE, mas você pode ficar livre para colocar esses campos em planilha ou dentro de uma tabela em seu BD).

OBS: O conteúdo dentro do campo de dimensão e/ou expressão não necessariamente precisam possuir o mesmo nome da dimensão que será utilizada na tabela.

SET HidePrefix = '_';

//Tabela com os campos de dimensões

Dimensões:
LOAD * INLINE [
_dimensao
Dimensão1
Dimensão2
Dimensão3
Dimensão4
Dimensão5
Dimensão6
Dimensão7
Dimensão8
];

//Tabela com expressões

Expressões:
LOAD * INLINE [
_expressao
Expressão1
Expressão2
];

2° Passo) Agora precisamos criar um gráfico do tipo Tabela Simples ou Tabela Dinâmica.

3° Passo) Após selecionar o tipo de gráfico, adicione a seguinte condição de cálculo, conforme imagem:

01 - Condição de Cálculo

Condição a ser preenchida: GetSelectedCount(_dimensao) > 0 and GetSelectedCount(_expressao) > 0

Traduzindo a expressão: Serão exibidos os dados do gráfico somente se houver, pelo menos, uma dimensão e uma expressão.

4° Passo) Agora precisamos adicionar as dimensões do gráfico. Note que essas dimensões não são as criadas na tabela Dimensões no primeiro passo.

Após adicionar cada uma dessas dimensões, devemos habilitar a condição "Permitir Condicional" e colocar a condição conforme a imagem abaixo:

02 - Condição da Dimensão

Condição a ser preenchida: SubStringCount(CONCAT('|'&_dimensao,'|') & '|', '|Dimensão1|')

Traduzindo a expressão: Estou concatenando todos os possíveis valores do campo _dimensao e estou procurando pela string |Dimensão1|, ou seja, se o usuário selecionou o valor Dimensão1, então este campo será exibido em nosso relatório. Por que estou utilizando o pipe "|" para concatenar e para buscar a string? Pois se houver um campo Dimensão1 e um Dimensão11, então o delimitador pipe irá diferencia-lo na busca.
 

5° Passo) É necessário fazer essa ação para cada dimensão que o usuário pode selecionar.

6° Passo) Para as expressões deve-se habilitar o checkbox "Condicional" e fazer o mesmo, porém agora utilizando o campo _expressao na condicional, conforme imagem:

03 - Condição da Expressão

Condição a ser preenchida: SubStringCount(CONCAT('|'&_expressao,'|') & '|', '|Expressão1|')

7° Passo) Disponibilizar para seleção os campos _dimensao e _expressao.

8° Passo) Perfumarias!

Para fazer o download da aplicação de exemplo clique aqui.

Conclusão: Eu gosto muito de colocar um relatório desse tipo nos projetos, pois o usuário fica com a liberdade de criar um gráfico de acordo com o seu desejo (dentro das dimensões e expressões pré-estabelecidas).

O cuidado que precisamos ter é limitar a quantidade de dados a serem exibidos se possibilitarmos a visualização de informações de baixo nível.

É isso pessoal!

Na próxima semana tem mais

Labels (3)
6 Replies
leandro_gocosta
Contributor III
Contributor III

Valeu...Yuri, já tinha visto estes relatórios em alguns exemplos mas como vocês mostrou entendi melhor...

Anonymous
Not applicable

cool Nicolett.

marcio150972
Creator
Creator

Muito bom Yuri, excelente, muito obrigado pela publicação!

nicolett_yuri
Author

Valeu pessoal!

Anonymous
Not applicable

Pessoal, bom dia!

Alguém sabe me informar se esse relatório eu consigo desenvolver também no Qlik Sense?

Obrigada!

dhsilva7
Contributor III
Contributor III

nicolett.yuri‌ Yuri,

Ficou que show cara, sua explicação esclarece muitas coisas relacionadas a esse conceito.

Muito obrigado por sempre compartilhar conhecimento de alta qualidade rsrs

Abs,