Pular para o conteúdo principal

Inserindo um Gráfico em um Tooltip de outro Gráfico no Pentaho

Eu trabalho com Pentaho mas sou admirador de outras Ferramentas de BI.
Compreendo que as empresas e instituições adotam esta ou aquela ferramenta por motivos de facilidade, cultura, equipe, financeiro ou outros. 

Gosto de examinar em especial o Tableau.

Recentemente vi um tutorial onde era demonstrado como inserir um gráfico dentro de um Tooltip de um outro gráfico. Achei a idéia muito interessante e me propus a tentar fazer o mesmo usando o Pentaho.

Bem vamos lá...

Para construção desse efeito usaremos:

O Pentaho Server Community;
Ctools CDE - Editor de dashboards;
Ctools CCC - Biblioteca  de gráficos;
Ctools CGG - Exportador dos gráficos que permite o aceso ao gráfico em formato PNG ou SVG;

Quando pronto o efeito fica dessa forma:


Para Fonte de dados utilizei o conjunto de dados SteelWheels que vem com o Pentaho.

Defini duas consultas MDX, uma para o primeiro gráfico e outra para o Gráfico do Tooltip:

SalesForLine (Gráfico 1):

WITH
SET [~ROWS] AS
    Order({[Product].[Line].Members}, [Measures].[Sales], DESC)
SELECT
NON EMPTY {[Measures].[Sales]} ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [SteelWheelsSales]


LineSalesInTime (Gráfico do ToolTip):

WITH
SET [~FILTER] AS
    {[Product].[${parLine}]}
SET [~ROWS] AS
    Order({[Time].[Years].Members}, [Measures].[Sales], DESC)
SELECT
NON EMPTY {[Measures].[Sales]} ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [SteelWheelsSales]

WHERE [~FILTER]

Está segundo consulta tem como filtro a descrição da coluna selecionada ou da coluna que apresenta o tooltip.

O filtro está definido no parâmetro ${parLine}.

A implementação basea-se em dois principais.

O evento tooltipFormat do Gráfico/objeto CCC Bar Char que permite customizar o tooltip  e customizá-lo usando HTML.

e

O uso do CGG do ctools que permite que gráficos sejam acessados como imagem.

A propriedade tooltipFormat foi customizada da seguinte forma:

function f(scene) {

    sHTML= "Categoria: " + scene.vars.category.label + 
           "<br />Valor: "    + scene.vars.value.value + 
           "<img src=\"/pentaho/plugin/cgg/api/services/draw?script=/public/Exemplos/ToolTip_Graphic/Tooltip_Graphic_LineSalesInTime.js&outputType=svg&paramparLine="+scene.vars.category.label+"\" height=\"150\" width=\"180\">";
    
    return sHTML;       


} 

Após Criar os gráficos para gerar os arquivos java script do CGG use o atalho shift + G.






Comentários

Postagens mais visitadas deste blog

Conectando o Excel ao Pentaho usando XMLA

Muitas pessoas reclamam do Saiku como Cliente XMLA para acesso aos cubos do Pentaho. Uma opção é habilitar o pentaho para que outros clientes possam conectar e navegar nos dados. Neste tutorial mostrarei como configurar o Excel para conexão aos cubos do Pentaho. Usarei como Cubo de exemplo o SteelWheels presente por padrão no Pentaho. É necessário fazer duas configurações, no Pentaho e no Excel. Primeiro no Pentaho: Deve-se ir na tela "Manage Data Sources" No exemplo clicamos em SteelWheels Analytics, em seguida na Engrenagem e no Botão Edit: Na tela de edição: Muda para Manually enter data sources parameter values; Clica-se  em EnableXMLA; Clica-se no botão Edição e altera a propriedade para true;  Após a alteração a tela deve estar assim: Confirma em Save. Segundo no Excel: Devemos instalar um pacote que permite ao Excel conectar a fonts XMLA: Usaremos o pacote: XMLA connect https://sourceforge.net/projects/xmlaconne...

Ativando a RequireJS no Pentaho

RequireJS é carregador de código javascript modular. Ele otimiza a carga do código aumentando a velocidade. Para ativá-lo em um dashboard, Pentaho/CDE ativa RequireJS no Editor do CDE em Settings. Diversas bibliotecas serão ativadas como: Utils; jquery; moment; chosen; Obs: A variável de ambiente para para referência aos dashboard mudará de : Dashboards Para  dashboard Observe que é o case sensitive. Referências: https://help.pentaho.com/Documentation/7.0/0R0/CTools/CDE_Advanced_Solutions

Pentaho/CDE tradução das expressões em Tabelas componente Table

O componente table do CDE é baseado no componente web DataTables. Pela documentação desse componente para traduzir as mensagens para Português recomenda-se ajustar na propriedade "language" com o seguinte conteúdo: {      "sEmptyTable" :  "Nenhum registro encontrado" ,      "sInfo" :  "Mostrando de _START_ até _END_ de _TOTAL_ registros" ,      "sInfoEmpty" :  "Mostrando 0 até 0 de 0 registros" ,      "sInfoFiltered" :  "(Filtrados de _MAX_ registros)" ,      "sInfoPostFix" :  "" ,      "sInfoThousands" :  "." ,      "sLengthMenu" :  "_MENU_ resultados por página" ,      "sLoadingRecords" :  "Carregando..." ,      "sProcessing" :  "Processando..." ,      "sZeroRecords" :  "Nenhum registro encontrado" ,  ...