Algumas vezes é necessário emitir um relatório a partir de uma interface ou painel criade pelo CDE.
Neste post vou mostrar como fazer isso em alguns passos e por este motivo é importante que esteja familiarizado com o CDE e Pentaho Report Designer. Durante o desenvolvimento do projeto vou informando os links que podem ajudar a quem não utilizou a ferramenta a entender o que está acontecendo.
A princípio teremos um painel simples, com uma tabela que é atualizada de acordo com um parâmetro vindo de uma combo box.
Ao clicarmos em um botão no painel, teremos a execução de um relatório do PRD, com exatamente os mesmo campos da tabela e também obedecendo o filtro utilizado no painel, mas vejam… poderia ser qualquer PRD.
Vamos ao trabalho!
Primeiro devemos criar um relatório através da ferramenta Pentaho Report Designer. Para isso você deve ter a ferramenta instalada e iniciar a execução da mesma através do arquivo /pentaho/report-designer/report-designer.sh no Linux ou report-designer.bat no Windows.
Não vou falar muito sobre esta ferramenta, pois criarei posts específicos sobre seu funcionamento mais tarde. A princípio vamos nos atentar ao seguinte:
1 – Crie um novo relatório – File->New
2 – No canto superior direito clique na aba “Data”
3 – Em “Data Sets”, clique com o botão direito e adicione uma nova conexão JDBC de acordo com seus parâmetros de conexão.
4 – Depois crie uma query para esta conexão selecionando a mesma e clicando no botão de adiocionar (+).
No meu caso eu criei duas queries:
A primeira é uma consulta SQL que retorna a data e a quantidade de itens movimentados, com um filtro por ano.
select
t.data,
f.qt_item
from
dw_almx.fato_entradamaterial f
inner join dw_corp.dm_tempo t on
t.pk_tempo = f.fk_tempo
where
t. ano4 = ${pAno}
Para que o relatório respeite o filtro eu utilizei o parâmetro ${pAno}. Vou mostrar como ele é criado mais adiante.
A segunda consulta, que também é SQL, eu criei para popular uma combo com os anos que o usuário poderá selecionar para servir de filtro/parâmetro para a primeira query.
select distinct ano4 from dw_corp.dm_tempo order by ano4
Com as duas consultas em perfeito funcionamento vamos em frente!
5 – Ainda na aba “Data”, adicione um parâmetro clicando com o botão direito do mouse sobre “Parameters”
6 – Siga a criação do seu parâmetro conforme a figura abaixo:
Onde:
Name = Nome do parâmetro que está criando. No exemplo usei pAno e já passei ele com este nome na Query 1.
Label = Rótulo que identifica o parâmetro na interface com usuário.
Value Type = Tipo de dado do parâmetro
Default Value = Valor padrão “selecionado” em seu parâmetro. Note que coloquei 2015, pois como estamos no primeiro dia útil de 2016 ainda não temos movimentação para o mesmo na minha base de exemplos.
Mandatory = Quando selecionado, indica que o relatório só pode ser gerado quando um valor do parâmetro for informado.
Display Type = Forma como o seu parâmetro aparecerá na interface com usuário. No nosso caso será uma Drop Down (ou combo box para os mais antigos como eu)
Query = Consulta criada anteriormente que populará sua drop dow. No nosso caso a Query 2
Value = Coluna que terá seu valor passado, quando selecionada a drop down.
Display Name = Coluna que será exibida em sua drop down.
7 – Criando os campos do relatório
Note que a Query 1, na aba “Data”, está contida em uma pasta com um ícone de expansão. Expanda esta pasta e verás os campos que sua consulta retorna. No caso do exemplo são apenas dois: data e qt_item.
Arraste-os para a banda de detalhes do relatório.
Se tudo deu certo até aqui, basta clicar no ícone de preview (olho) para ver o resultado que deve ser como na figura abaixo:
Se seu resultado foi positivo, salve o relatório e publique-o
No caso do exemplo, salvei como “relatorio_teste.prpt”. Para publicar vá em “File->Publish”
Atente-se para url do seu BI-Server e as credenciais de autenticação que devem ser as de um usuário administrador do Pentaho.
Nesta tela você informa o nome do arquivo, o caminho onde deseja que ele seja publicado e a forma de saída padrão do relatório, ainda é possível bloquear para que os usuário não possam selecionar outra forma de saída que não a padrão.
Agora encontre o relatório no PUC através da opção “Navegar por Arquivos” e execute-o para testar.
Depois de tudo isso vamos finalmente criar nosso painel que disparará o relatório em questão.
Criando o Painel
- Crie um novo painel CDE
- Na perspectiva “Layout” crie 3 linhas chamadas respectivamente de r1, r2 e r3.
- Na perspectiva “Data Sources” crie duas consultas SQL exatamente iguais as criadas no relatório, sendo uma para a combo do parâmetro e outra para a tabela que será exibida no painel. Porém para diferenciar, vamos alterar o nome do parâmetro da consulta da tabela para ${ano} ao invés de ${pAno}.
- Na perspectiva “Components”, crie os seguintes componentes:
- Simple parameter
- Name: ano
- Property value: 2015
- Select Component
- Name: cboAno
- Parameter: ano
- Value as id: True
- Datasource: <nome da query que você criou que traz os anos distintamente>
- HtmlObject: r1
- Table Component
- Name: tb1
- Listeners: ano
- Parameters ano, ano
- Datasource: <nome da consulta que populará a tabela>
- HtmlObject: r2
- Execute Prpt Component
- Name: prpt
- Label: prpt
- Listeners: ano
- Path: <caminho onde publicou seu relatório>
- Paramenters: pAno, ano (aqui eu digo que o parâmetro pAno do report será atualizado pelo parâmetro ano do painel)
- HtmlObject: r3
- Simple parameter
Se todos os passos de criação estiverem corretos, basta você clicar no botão de pré-visualização para obter os resultados:
1 -Painel – Note o filtro e botão para execução do report
2 – Relatório executado através do painel.
Por hoje é só pessoal. Estamos apenas começando o ano. Até a próxima!