Home Tutoriais Pentaho BI Criando um relatório no Pentaho Report Designer com multiplas fontes de dados usando consultas em fórmulas.
Criando um relatório no Pentaho Report Designer com multiplas fontes de dados usando consultas em fórmulas. PDF Imprimir E-mail

O PRD ( Pentaho Report Designer ) tem a capacidade de se conectar a multiplas fontes de dados . Isto é apenas um dos diferenciais da ferramenta.

Além de mais de 30 fontes de dados tambem é possivel utilizar destes recursos em um único relatório agrupar dados destas fontes diversas.  

A versão 3.8 do PRD tem suporte a consultas através de formulas, a Função SINGLEVALUEQUERY que permite recuperar um valor único de uma linha de registro, de uma consulta, muito útil para casos que precisamos trazer valores agrupados, com uso de comandos de agrupamento no SQL como o SUM, COUNT, etc. e com esta função cada consulta pode buscar de fontes de dados distintas

Utilizamos em um caso real está função para atender a seguinte necessidade, um relatório deveria ter o detalhamento de linha ( aba details ) que apresenta-se as seguintes informações:

PRODUTO   | SALDO EM ESTOQUE | SALDO RESERVADO | TOTAL P/ VENDA|
Pendriver |           1.000  |             200 |            800|
Celular   |             500  |             100 |            400|


Aparentemente fácil de ser solicionado mas... neste caso os dados do produto estavam em uma base de dados A, o Saldo de Estoque em uma base de dados B e o Saldo Reservado em uma base de dados C conforme imagem.



Teriamos que imprimir um relatório com acesso direto aos sistemas ( online ) sem uso de um datawarehouse ou outros recursos do Pentaho.

O uso de Sub-Report também poderia ser aplicado para solucionar este caso, porém  a função  SINGLEVALUEQUERY resolve de forma mais simples e com melhor performence que no uso de sub-reports






Para resolver o caso foi criada uma queryprincipal que listava na band detail os produtos.

Com a chave ( código ) do produto foi adicionada como parametro para a query ConsultaSaldo e ConsultaReservado.

Exemplo query ConsultaSaldo usando parâmetro do código do produto retornado da query principal do relatório:  

SELECT SUM(SALDO) FROM ESTOQUE WHERE CODIGO_PRODUTO = ( ${COD_PRODUTO} )


Exemplo query ConsultaReservado usando parâmetro:  

SELECT SUM(SALDO) FROM RESERVA WHERE CODIGO_PRODUTO = ( ${COD_PRODUTO} )


No PRD foi adicionado um elemento Label e configurado para cada base ( B e C ) com os sequintes atributos:

LABEL com valor de Saldo de Estoque:

Na propriedade value adicione esta informação : SINGLEVALUE: ConsultaSaldo
Onde SINGLEVALUE é uma informação fixa e ConsultaSaldo é o nome da sua query.

alt


Na coluna expression edite a seguinte expressão

=SINGLEVALUEQUERY("ConsultaSaldo")

alt




LABEL com valor de Saldo Reservado:

Na propriedade value adicione esta informação : SINGLEVALUE: ConsultaReservado
Onde SINGLEVALUE é uma informação fixa e ConsultaReservado é o nome da sua query.

Na coluna expression edite a seguinte expressão

=SINGLEVALUEQUERY("ConsultaReservado")


Com isso podemos solucionar qualquer caso de consulta em multiplas bases de dados.


Além de Função SINGLEVALUEQUERY ainda podemos utilizar através de formulas a função MULTIVALUEQUERY que retorna um conjundo de valores em uma lista.

Mais informações podem ser adquiridas direto no blog do desenvolvedor do Pentaho Report Designer neste Post: http://www.sherito.org/2011/04/using-queries-in-formulas-in-pentaho.html


Sobre a Ambiente Livre

A Ambiente Livre Tecnologia e especialista em utilização do Pentaho BI para geração de negócios com soluções open source. fornecemos implantação, integração, suporte,  consultoria e Treinamento em Pentaho BI


SINGLEVALUEQUERY
 
Copyright © 2024 Ambiente Livre - Open Source for Business - Soluções em Software Livre. Todos os direitos reservados.
Joomla! é um Software Livre com licença GNU/GPL v2.0.