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¶mparLine="+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.
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¶mparLine="+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
Postar um comentário