Você está na página 1de 87

Business Intelligence and Reporting Tools

BIRT

Preparado por:

Guilherme Nogueira de Resende


guilherme.resende@sigga.com.br

Vinicius Dias Silveira


vinicius.dias@sigga.com.br

Material Confidencial – Uso Interno 1


Índice
Introdução ao Birt ................................................................................................................................ 3
Instalação ............................................................................................................................................. 5
Preparação da ferramenta de desenvolvimento.................................................................................... 8
Criando o Primeiro Relatório ............................................................................................................. 19
Relatório de Gráfico ........................................................................................................................... 36
Relatório de Detalhes do Contrato de Compra .................................................................................. 69

Material Confidencial – Uso Interno 2


Introdução ao Birt

O Actuate BIRT é uma ferramenta de geração de relatórios de código aberto e voltada para
aplicações web, especialmente aquelas baseadas em Java e J2EE. É beneficiada por utilizar a
plataforma Eclipse e suas principais comunidades de utilizadores.
O BIRT é composto dos seguintes componentes: BIRT Report Engine e BIRT Report
Designer.
O BIRT Report Engine é uma ferramenta utilizada para visualizar relatórios. Ela gera relatórios
nos formatos HTM, CVS ou PDF para que você possa visualizar seu relatório no seu browser. O BIRT
Report Engine está embutido no seu sistema, ou seja, quando você instalar o seu software de
aplicação, você também instalará o BIRT Report Engine.
O BIRT Report Designer é utilizado para desenvolvimento de relatórios. O Designer gera
relatórios que integram com aplicações Web.

Figura 1: BIRT Reporting Framework.

Os desenvolvimentos de aplicações BIRT começam com o Report Designer que é baseado


numa série de plugins e oferece uma variedade de ferramentas para criar relatórios rapidamente.
Algumas destas ferramentas estão listadas abaixo.
Data Explorer - Organiza as suas fontes de dados (Data Sources) e conjunto de dados (Data Sets).
O data set editor permite testar um conjunto de dados a fim de garantir que o relatório receba os
dados corretos.
Layout View - O editor WYSIWYG permite arrastar e soltar componentes durante a criação do
relatório.
Palette - Contém um conjunto de elementos básicos, tais como labels, grids, tabelas, gráficos,
entre outros.
Expression Builder - Fornece uma interface para criar campos calculados, formatar dados ou criar
outros dados e orientá-los para cálculos.
Material Confidencial – Uso Interno 3
Style Builder - Cria e administra estilos para a formatação do relatório.
Property Editor - Apresenta as propriedades mais utilizadas para tornar a edição mais rápida e
fácil. O BIRT integra também com as propriedades padrões do Eclipse, fornecendo uma lista de
todas as propriedades de um item.
Report Preview - Permite testar o relatório a qualquer momento com dados reais. A visualização é
feita em uma janela do próprio Eclipse.
Script Editor - Customiza a lógica para ser executada durante o acesso aos dados, geração de
relatórios ou visualização.
Chart Wizard - A criação de gráfico é dividida em três fases: Selecionar tipo de gráfico,
selecionar dados e selecionar o formato do gráfico.
Outline – Fornece uma visão geral de toda a estrutura do relatório.
Cheat Sheets – Oferece instruções passo-a-passo com as tarefas mais comuns com a finalidade de
acelerar o aprendizado.

BIRT Report Design Files são arquivos XML com a extensão .rptdesign. relatórios BIRT podem
conter um ou vários arquivos. Os arquivos são categorizados por library files ou resource files.
Biblioteca de arquivos BIRT ou library files também são arquivos XML e tem a extensão
.rptlibrary. Biblioteca de arquivos BIRT contém código que é usado várias vezes por itens como por
exemplo: tipo de fonte, tamanho, número de páginas. Os arquivos individuais podem ser reutilizados
varias vezes no BIRT Report Designs.
Resource Files contem itens como imagens ou arquivos externos. Resource files podem ser usados
tanto para report design files quanto para library files. Arquivos de propriedade também são resource
files. Muitos modelos diferentes de relatórios usam o mesmo arquivos de propriedade.
O XML do BIRT Report details como library files e resource files são requerimentos do relatório.
Sem estes arquivos o relatório não executará.

Após esta breve apresentação sobre o BIRT, começaremos a traçar os passos para a instalação do
produto.

Material Confidencial – Uso Interno 4


Instalação

A maneira mais fácil de começar a desenvolver relatórios utilizando o BIRT é instalando o All-
in-One. Uma versão do All-in-One pode ser baixada em http://download.eclipse.org/birt/downloads .
Este download inclui o Framework do BIRT, Eclipse SDK, GEF e o EMF, tudo que se precisa para
começar.
Pré-requisitos: Java 1.5 JDK/JRE.
Para

1. Instalação do BIRT
a. Descompactar o arquivo “birt-report-designer-all-in-one-x_x_x.zip”;
b. Executar o arquivo “eclipse.exe”;
c. Selecionar um workspace.

Em alguns casos apresenta a seguinte mensagem de erro indicando que a versão do JVM é
inferior a 1.5. Certifique-se que uma versão igual ou superior do Java 1.5 JDK/JRE esteja instalada.
Caso a versão seja inferior a 1.5, baixar uma versão atualizada em
http://www.java.com/pt_BR/download .

Material Confidencial – Uso Interno 5


Se a versão instalada já for igual ou superior a 1.5 e ao iniciar o Eclipse apresentar a mensagem
de erro acima, deve-se configurar as variáveis de ambiente. Vá ao Painel de controle, clique em
sistema e em seguida na aba Avançado. Clique no botão Variáveis de ambiente.

Material Confidencial – Uso Interno 6


Procure pela variável Path e clique em Editar

Acrescente no valor da variável o local onde se encontra a pasta bin do Java JDK/JRE,
separado por ;
Ex.: C:\oracle\ora92\bin;C:\Arquivos de
programas\Java\jre1.6.0_07\bin;D:\Actuate8\iServer\ActuateIntegration\Uninstallerjre\bin;

Clique em OK e execute o Eclipse Birt novamente.


Material Confidencial – Uso Interno 7
Preparação da ferramenta de desenvolvimento.
Será tratado a partir de agora as configurações de bibliotecas específicas para relatórios específicos do
Maximo. Siga portanto os seguintes passos.

1. No servidor onde está instalado o Maximo, localize e copie a pasta \com existente do caminho:

<Diretório do Máximo>\reports\birt\scriptlibrary\classes

2. No computador onde está sendo configurado o Birt para desenvolvimento, cole a pasta \com
copiada anteriormente no seguinte caminho:

<Diretório do Eclipse>\plugins\org.eclipse.birt.report.viewer_2.1.2.v20070205-
1728\birt\WEB-INF\classes

Se necessário crie a pasta classes para poder colocar a pasta \com dentro caso essa não exista.
A parte do caminho informada v20070205-1728 pode variar de acordo com a versão do Birt
instalada.

3. Copie o arquivo mxreportdatasources.properties existente no mesmo caminho informado no


passo 1.
4. Cole o arquivo mxreportdatasources.properties no caminho:

<Diretório do Eclipse>\plugins\org.eclipse.birt.report.viewer_2.1.2.v20070205-
1728\birt\WEB-INF\classes

5. Abra o arquivo que foi colado no passo 4 e informe os parâmetros de conexão ao banco de
dados para auxiliar seu desenvolvimento. Com essa configuração não será necessário publicar
o relatório todas as vezes que for necessário testar durante o desenvolvimento uma vez que será
possível testar dentro do próprio Eclipse. Repare que para cada tipo de banco de dados os
parâmetros são diferentes. O banco de dados utilizado no exemplo a seguir tem as seguintes
características:

Sistema do banco de dados: Oracle


IP do Servidor: 10.10.10.95
Nome do banco: LOCAL
Porta: 1521
Usuário: maximo
Senha: maximo

Geralmente a conexão dos relatórios possuem o nome maximoDataSource, mas isso pode
variar de acordo com a vontade e necessidade do desenvolvedor. No exemplo será utilizado o
nome padrão.
Material Confidencial – Uso Interno 8
Após editar o arquivo não esqueça de salvar.

6. Será necessário copiar para o eclipse o driver de conexão JDBC. Para isso localize no servidor
onde está instalado o Maximo o driver no seguinte caminho:

<Diretório do Máximo>\applications\maximo\lib

Note que para cada banco de dados existe um driver diferente, copie o driver necessário para o banco
de dados utilizado por você conforme abaixo:

Oracle: use o oraclethin.zip.


SQL Server: use o opta.jar.
DB2: use o db2jcc.jar e o db2jcc_license_cu.jar

7. Cole o arquivo copiado no passo anterior no seguinte caminho do computador onde está sendo
configurado o Eclipse:

Material Confidencial – Uso Interno 9


<Diretório do Eclipse>\plugins\org.eclipse.birt.report.viewer_2.1.2.v20070205-
1728\birt\WEB-INF\lib

8. Copie do servidor onde está instalado o Maximo as pasta libraries, reports e templates
existentes no caminho:

<Diretório do Máximo>\reports\birt

9. Na maquina onde está sendo configurado o Birt, localize o diretório do Eclipse e crie uma
pasta de nome BibliotecaMaximo. Dentro da pasta criada cole as pastas libraries, reports e
templates copiadas no passo anterior.

10. Desse passo em diante as configurações serão feitas no próprio Eclipse, portanto abra-o.

11. Clique em Window  Preferences

12. Expanda a opção Report Design clicando no sinal [+]

13. Selecione Resource e indique o caminho <Diretorio do Eclipse>\BibliotecaMaximo\libraries.


Se desejar utilize o botão Select para navegar até a pasta.

Material Confidencial – Uso Interno 10


14. Selecione Templante e indique a caminho <Diretorio do
Eclipse>\BibliotecaMaximo\templates. Se desejar utilize o botão Select para navegar até a
pasta.

Material Confidencial – Uso Interno 11


15. Selecione a opção Comment Template e desmarque o flag Generate comment when creating a
report design. Em seguida clique no botão OK para salvar as configurações.

Material Confidencial – Uso Interno 12


Os próximos passos são opcionais e tem como objetivo importar os relatórios originais do
Maximo. É sugerido realizar o procedimento para ter os relatórios como base de consulta
auxiliar no desenvolvimento de relatórios customizados.

16. Crie um novo projeto com o objetivo de armazenar somente os relatórios core do Maximo.
Para isso clique em File  New  Others

Material Confidencial – Uso Interno 13


17. Expandir a pasta Bussiness Intelligence and Reporting Tools e selecionar Report Project. Em
seguida clique no botão Next.

18. Escolha um nome para o projeto que irá conter os relatórios core e clique em Finish.

Material Confidencial – Uso Interno 14


19. Clique com o botão direito do mouse no projeto criado e escolha a opção Import.

20. Expanda a pasta General e escolha a opção File System. Clique no botão Next em seguida.

Material Confidencial – Uso Interno 15


21. Indique o caminho <Diretório do Eclipse>\BibliotecaMaximo\reports. Se preferir utilize a
opção Browse para navegar pelas pasta. Em seguida marque o Flag da pasta report e clique no
botão Finish.

Material Confidencial – Uso Interno 16


Material Confidencial – Uso Interno 17
É aconselhável também que se aumente o número de esquemas e de tabelas a serem exibidas
no Data Set. Para isso clique em Window, Preferences. Na tela Preferences clique em Report Design,
Data Set Editor e em JDBC Data Set e altere os campos como no exemplo a seguir.

Material Confidencial – Uso Interno 18


Criando o Primeiro Relatório

Desenvolvimento do Relatório Detalhes do Pedido agrupado por pedido.


Esse relatório irá listar informações da Ordem de Compra utilizando o banco de dados de
exemplo que acompanha o Eclipse Birt e irá agrupar os pedidos pelo seu código, irá mostrar como se
cria um filtro e como apresentar um somatório com o valor total do pedido.
1. Abra o Eclipse Birt.
2. Selecione o menu File->New->Project procure a pasta Business Intelligence and Reporting
Tools e selecione Report Project e clique em Next.

3. Dê um nome ao seu projeto e clique em Finish.


4. Selecione o menu File->New->Report. Selecione um projeto onde será criado o relatório e dê
um nome ao relatório e clique em Next. Selecione o template Blank Report e clique em Finish.
5. O primeiro passo na criação de um relatório é fazer a conexão com o Banco de Dados, para
isso clique com o botão direito do mouse em Data Sources e selecione New Data Source. No
Material Confidencial – Uso Interno 19
caso deste relatório usaremos o BD de exemplo que acompanha o BIRT, Selecione Classic
Models Inc. Sample Database, de um nome ao Data Source e clique em Next e em seguida em
Finish.

6. Agora que já se tem uma fonte, é preciso criar um conjunto de dados que será utilizado no
relatório. Clique com o botão direito em Data Sets e em seguida em New Data Set.

Material Confidencial – Uso Interno 20


Dê um nome ao Data Set a ser criado. É possível ainda definir o tipo do Data Set e de qual
Data Source ele irá recuperar os dados. Neste caso iremos alterar apenas o nome do Data Set.

7. Após ter clicado em Next irá abrir a janela onde deve ser definido a Query que ira recuperar os
dados. É possível montar a Query arrastando as tabelas e colunas ou digitando.
Digite a sentença SQL abaixo:
select *
from CLASSICMODELS.ORDERDETAILS

Material Confidencial – Uso Interno 21


Clique em Finish. Na próxima tela é possível fazer várias modificações como alterar o Data
Source, modificar a Query, Visualizar e editar as colunas que a Query retorna, Criar campos
calculados, criar parâmetros entre outros. Clique em OK.

Material Confidencial – Uso Interno 22


8. Monte a estrutura do relatório conforme a figura abaixo.

Para criar o cabeçalho utilize um Grid, Labels e Image. Para criar a tabela onde será
apresentado os dados, basta arrastar o Data Set para a tela. Em seguida clique em Preview para
visualizar o relatório.

Material Confidencial – Uso Interno 23


9. Para adicionar o agrupamento devemos selecionar a tabela, clicar em Element->Group->Insert
Group->Below.

Material Confidencial – Uso Interno 24


Irá aparecer a tela abaixo, insira um nome para o agrupamento. No campo Group On selecione
ORDERNUMBER e clique em OK.

Altere a tabela para que o relatório fique como na imagem abaixo. Para isso deve-se excluir o
cabeçalho do agrupamento, alterar a cor de fundo do cabeçalho e dos rodapés

Material Confidencial – Uso Interno 25


Para calcular o total de produtos por agrupamento deve-se acrescentar o componente Aggregation
presente no Palette. Ao arrastar o componente para tabela deve-se fazer a seguinte configuração:

Material Confidencial – Uso Interno 26


E digite a seguinte expressão:

Clique novamente em Preview para verificar como ficou a execução do relatório.

10. Vamos inserir agora uma nova coluna na tabela que irá calcular o valor de cada produtor *
quantidade. Para isso selecione a coluna PRICEEACH clique com o botão direito->Insert-
>Column to the Right. Acrescente um label TOTAL no cabeçalho e um componente Data no
nível de detalhes.

Material Confidencial – Uso Interno 27


Ao acrescentar o componente Data, inclua a expressão como no exemplo a seguir:
row["QUANTITYORDERED"] * row["PRICEEACH"]

Material Confidencial – Uso Interno 28


11. Para poder formatar os números que representam valores faça o seguinte:
Selecione o campo no qual se quer formatar, no nosso caso PRICEEACH, TOTAL e Valor
Total, e faça as alterações como no exemplo abaixo:

Material Confidencial – Uso Interno 29


12. O próximo passo será criar uma variável “WhereClause” para poder fazer a manipulação dos
dados. Para isso de um clique com o botão direito em Report Parameters e em seguida
selecione New Parameter.

13. Preencha o campo Name com WhereClause. Devemos garantir que o valor padrão da variável
seja “Where 1=1”. Para isso devemos alterar o campo Default Value para 1=1 e no campo
Format as Clicar em “Change...”.

Material Confidencial – Uso Interno 30


14. Após clicar em “Change...” mude o campo Format as para Custom e em seguida no campo
Format code digite a expressão “Where !” . A exclamação fará com que o que estiver digitado
em Format Code seja apresentado antes do que está digitado no Defaut Value. Clique em OK e
saia do Edit Parameter.

Material Confidencial – Uso Interno 31


15. Em seguida selecione o Data Set criado anteriormente e clique na aba Script e insira o seguinte
código:
this.queryText = this.queryText + " where " + params["WhereClause"].value

Material Confidencial – Uso Interno 32


16. Clique no botão para visualizar o relatório. Irá aparecer uma tela informando o valor
padrão da WhereClause, faça um filtro como o exemplo a seguir. O relatório será executado
somente com os registros QUANTITYORDERED maior ou igual a 40.

Material Confidencial – Uso Interno 33


Material Confidencial – Uso Interno 34
Perceba que só retornou registros cuja coluna QUANTITYORDERED é preenchida com valor
maior ou igual a 40.

Material Confidencial – Uso Interno 35


Relatório de Gráfico

Este relatório irá mostrar um gráfico com os cinco maiores volumes pendente separado por clientes.
Mostrará ainda o limite de credito dos clientes com pendências. Após o gráfico apresentará os pedidos
de todos os clientes e uma lista de todos os clientes.
1. Abra o Eclipse Birt.
2. Selecione o menu File->New->Report. Selecione um projeto onde será criado o relatório e dê
um nome ao relatório e clique em Next. Selecione o template Blank Report e clique em Finish.
3. O primeiro passo na criação de um relatório é fazer a conexão com o Banco de Dados, para
isso clique com o botão direito do mouse em Data Sources e selecione New Data Source. No
caso deste relatório usaremos o BD de exemplo que acompanha o BIRT, Selecione Classic
Models Inc. Sample Database, de um nome ao Data Source e clique em Next e em seguida em
Finish.

4. Agora que já se tem uma fonte, é preciso criar um conjunto de dados que será utilizado no
relatório. Clique com o botão direito em Data Sets e em seguida em New Data Set.

Material Confidencial – Uso Interno 36


Dê um nome ao Data Set a ser criado. É possível ainda definir o tipo do Data Set e de qual
Data Source ele irá recuperar os dados. Neste caso iremos alterar apenas o nome do Data Set.

5. Após ter clicado em Next irá abrir a janela onde deve ser definido a Query que ira recuperar os
dados. É possível montar a Query arrastando as tabelas e colunas ou digitando.
Digite a sentença SQL abaixo:

select
CLASSICMODELS.CUSTOMERS.CUSTOMERNAME,
CLASSICMODELS.ORDERS.ORDERNUMBER,
CLASSICMODELS.ORDERS.ORDERDATE,
CLASSICMODELS.ORDERS.STATUS,
CLASSICMODELS.ORDERDETAILS.QUANTITYORDERED,
CLASSICMODELS.ORDERDETAILS.PRICEEACH
from
CLASSICMODELS.CUSTOMERS,
CLASSICMODELS.ORDERS,
CLASSICMODELS.ORDERDETAILS
where
CLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER = CLASSICMODELS.ORDERS.CUSTOMERNUMBER
and
CLASSICMODELS.ORDERS.ORDERNUMBER = CLASSICMODELS.ORDERDETAILS.ORDERNUMBER

Material Confidencial – Uso Interno 37


Clique em Finish. Na próxima tela é possível fazer várias modificações como alterar o Data
Source, modificar a Query, Visualizar e editar as colunas que a Query retorna, Criar campos
calculados, criar parâmetros entre outros. Clique em OK.

Material Confidencial – Uso Interno 38


6. Monte a estrutura do relatório conforme a figura abaixo.

Material Confidencial – Uso Interno 39


O agrupamento 1 deve ser feito pelo campo CUSTOMERNAME e o agrupamento 2 deve ser feito
pelo campo ORDERNUMBER. Para facilitar na visualização, mude a cor de fundo do cabeçalho e dos
agrupamentos.

Material Confidencial – Uso Interno 40


7. Agora nós devemos criar uma coluna na tabela para inserir o campo TOTAL. Para inserir uma
nova coluna na tabela selecione a ultima coluna clique com o botão direito, vá em Insert e
selecione Column to the Right.

8. No cabeçalho insira um Label TOTAL e na linha de detalhes insira um campo do tipo data. No
campo Expression digite:

dataSetRow["QUANTITYORDERED"] * dataSetRow["PRICEEACH"]

Material Confidencial – Uso Interno 41


9. No rodapé do agrupamento por CUSTOMERNAME e por ORDERNUMBER acrescente um
componente Aggregation para calcular os valores totais. Faça a seguinte configuração:

Material Confidencial – Uso Interno 42


Faça a mesma configuração nos componentes aggregation prestando atenção para colocar o
agrupamento correto.

10. Formate os campos que representam valor para que apresentem o símbolo $ na frente de cada
numero, separador de milhar e limitar as casas decimais para 2

Material Confidencial – Uso Interno 43


11. Clique em Preview e verifique como ficou a execução da tabela.

Material Confidencial – Uso Interno 44


12. Para criar a lista de todos os clientes devemos criar um novo Data Set. Clique com o botão
direito em Data Sets e selecione New Data Set. Dê um nome ao Data Set e clique em Next.
Insira a seguinte query:

select CLASSICMODELS.CUSTOMERS.CUSTOMERNAME,
CLASSICMODELS.CUSTOMERS.CONTACTLASTNAME,
CLASSICMODELS.CUSTOMERS.ADDRESSLINE1,
CLASSICMODELS.CUSTOMERS.CREDITLIMIT
from CLASSICMODELS.CUSTOMERS

Material Confidencial – Uso Interno 45


Clique em Finish.

13. Monte a interface do relatório como na imagem a seguir:

Material Confidencial – Uso Interno 46


14. Para facilitar a visualização da tabela Costumer Listing, vamos deixar oscilando a cor de fundo
da linha de detalhes. Para isto, selecione a linha de detalhes da tabela e dentro da aba “Property
Editor – row” selecione a aba “Highlights” e clique em add.

Material Confidencial – Uso Interno 47


15. Faça a seguinte configuração:

Material Confidencial – Uso Interno 48


A expressão “row.__rownum % 2 not Equal to 0” retorna as linhas impares. Sempre que esta
condição for verdadeira a cor de fundo da linha vai ser prata.

16. Clique em Preview e verifique como ficou a execução da tabela.

Material Confidencial – Uso Interno 49


17. Antes de criar o gráfico devemos criar um novo Data Set para populá-lo. Clique com o botão
direito em Data Sets e selecione New Data Set. Dê um nome ao Data Set e clique em Next.
Insira a seguinte query:

select CUSTOMERS.CUSTOMERNAME,
CUSTOMERS.CUSTOMERNUMBER,CLASSICMODELS.CUSTOMERS.CREDITLIMIT,
ordersums.OrderTotals,
paymentsums.PaidTotals
from CUSTOMERS,
( select ORDERS.CUSTOMERNUMBER, sum(ORDERDETAILS.QUANTITYORDERED *
ORDERDETAILS.PRICEEACH) as OrderTotals
from ORDERS, ORDERDETAILS where ORDERDETAILS.ORDERNUMBER = ORDERS.ORDERNUMBER
group by ORDERS.CUSTOMERNUMBER) ordersums,
( select CUSTOMERS.CUSTOMERNUMBER, sum(PAYMENTS.AMOUNT) as PaidTotals
from CUSTOMERS, PAYMENTS where PAYMENTS.CUSTOMERNUMBER = CUSTOMERS.CUSTOMERNUMBER
group by CUSTOMERS.CUSTOMERNUMBER) paymentsums

where CUSTOMERS.CUSTOMERNUMBER = ordersums.CUSTOMERNUMBER


and CUSTOMERS.CUSTOMERNUMBER = paymentsums.CUSTOMERNUMBER

Material Confidencial – Uso Interno 50


Clique em Finish.

18. Na próxima tela devemos criar uma coluna computada chamada Outsanding. Para adicionar
esta coluna, clique em Computed Columns, New e preencha o campo Expression com
“row["ORDERTOTALS"] - row["PAIDTOTALS"]”.

Material Confidencial – Uso Interno 51


Clique em OK e em OK novamente.

19. Para criar o gráfico, devemos adicionar um componente chart no relatório. Clique no ícone
e arraste para antes da tabela Customer Order.

20. Selecione o gráfico de barras, no campo Dimession selecione a opção 2D With Depth, no
campo Multiple Y Axis selecione Secondary Axis e em Series Type selecione Line Series.

Material Confidencial – Uso Interno 52


Clique em Next.

21. No campo Select Data marque o botão Use Data from e selecione o Data Set OutsandingRatio.
Em seguida clique em Filters.

Material Confidencial – Uso Interno 53


22. Crie um filtro como na imagem abaixo. Este filtro irá garantir que o gráfico irá apresentar
apenas os 5 maiores valores do campo Outsanding.

Material Confidencial – Uso Interno 54


Clique em OK

23. O próximo passo é indicar quais campos irão popular o eixo X e o eixo Y do gráfico. No
campo Y Axis 1 preencher com a linha Outsanding, para adicionar basta arrastar a coluna que
se encontra no Data Preview e soltar no campo indicado. No campo Y Axis 2 coloque a linha
CREDITLIMIT e no campo Category (X) Series coloque a linha CUSTOMERNAME.

Material Confidencial – Uso Interno 55


Clique em Next

24. Agora iremos desabilitar a legenda do eixo Y Axis 2, para isto, dentro do agrupamento Chart
Area e do agrupamento Axis, selecione a linha Y-Axis-2 e desmarque o Checkbox visible do
campo Labels.

Material Confidencial – Uso Interno 56


25. O próximo passo é remover a legenda, para isto clique em legend e desmarque a opção Visible.

Material Confidencial – Uso Interno 57


26. Agora iremos colocar uma inclinação de -45° na descrição do eixo X. Para isso selecione X-
Axis dentro do agrupamento Axis, clique no botão com campo Labels e mude a inclinação.

Material Confidencial – Uso Interno 58


Clique em OK

27. Para alterar o titulo do gráfico, selecione Title e altere o campo Chart Title para Outsanding
Ratio

Material Confidencial – Uso Interno 59


28. Dentro do agrupamento Series, selecione Value (Y) Series – 1 marque o checkbox Show
Series Labels e em seguida no botão Labels. Na janela que irá abrir mude o campo position
para Inside.

Material Confidencial – Uso Interno 60


Esta modificação faz com que a legenda com o valor do eixo Y-1 apareça dentro co ícone
correspondente no gráfico.

29. Faça os mesmos procedimentos do passo anterior para o eixo Value (Y) Series – 2, porem o
campo position deve ser Above

Material Confidencial – Uso Interno 61


30. Para facilitar a visualização do gráfico nos iremos mudar a cor do componente do eixo Y-1,
para fazer esta alteração clique na guia Series. Na Serie Value (Y) Series - 1 marque o
checkbox Translucent e em seguida clique no botão Series Pallet. Na janela que abrirá mude a
cor do Axis1 para vermelho.

Material Confidencial – Uso Interno 62


Clique em finish.

31. Agora iremos deixar o gráfico interativo, ou seja, quando o usuário clicar sobre as colunas o
relatório ira buscar o campo correspondente na tabela Customer Order. Primeiro devemos
adicionar um bookmark no campo CUSTOMERNAME. Para criar o bookmark selecione o
campo CUSTOMERNAME na tabela, na aba Properties clique no campo bookmark e em
seguida no botão . Adicione a seguinte sentença:
row["CUSTOMERNAME"]

Material Confidencial – Uso Interno 63


32. Dê um duplo clique no gráfico e na aba Format Chart selecione o campo Value (Y) Series – 1 e
clique no botão Interactivity. Na janela que abrirá mude o campo Action para Hyperlink e
clique no botão Edit base URL

Material Confidencial – Uso Interno 64


33. No campo Select Hyperlink Type, selecione a opção Internal Bookmark e no campo Bookmark
selecione o bookmark criado anteriormente.

Material Confidencial – Uso Interno 65


Clique em OK e volte para o relatório.

34. Clique no botão para visualizar como o relatório ficou.

Material Confidencial – Uso Interno 66


35. Verifique que ao clicar sobre uma coluna do gráfico, o relatório irá automaticamente para o
campo correspondente na tabela Customer Order.

Material Confidencial – Uso Interno 67


Material Confidencial – Uso Interno 68
Relatório de Detalhes do Contrato de Compra

Este relatório irá listar os contratos de compra agrupados por organização e listar as linhas do
contrato de compra. Será efetuado também a publicação do relatório no Maximo 7.
1. Abra o Eclipse Birt.
2. Selecione o menu File->New->Project procure a pasta Business Intelligence and Reporting
Tools e selecione Report Project e clique em Next.
3. Dê um nome ao seu projeto e clique em Finish.
4. Selecione o menu File->New->Report. Selecione um projeto onde será criado o relatório e dê
um nome ao relatório e clique em Next. Selecione o template Tivoli Maximo Subreport
Template e clique em Finish.

Material Confidencial – Uso Interno 69


5. O primeiro passo na criação de um relatório é fazer a conexão com o Banco de Dados, perceba
que com este Template o Data Source já é criado automaticamente. O Data Source é do tipo
Scripted para que ele fique dinâmico ou seja, permitir que a conexão com a base de dados seja
a mesma utilizada pelo Maximo 7.
6. Antes de configurar o Data Set, devemos verificar se o relatório esta importando o pacote que
contém as funções necessárias para poder publicar o relatório. No Outline selecione o relatório
e clique em Script. Verifique se o método initialize contém o seguinte script:

importPackage(Packages.com.ibm.tivoli.maximo.report.script);

mxReportScriptContext = MXReportScriptContext.initialize(reportContext);

Verifique também o método afterFactory contem o seguinte Script:

MXReportScriptContext.close();

Material Confidencial – Uso Interno 70


7. Para configurar o Data Set principal, selecione o Data Set criado pelo Template(mainDataSet),
clique em script, selecione o método open e adicione o seguinte script:

maximoDataSet = MXReportDataSetProvider.create(this.getDataSource().getName(),
this.getName());
maximoDataSet.open();

var sqlText = new String();

// Add query to sqlText variable.


sqlText = "select PURCHVIEW.CONTRACTTYPE, PURCHVIEW.DESCRIPTION, "
+ " PURCHVIEW.STATUS, PURCHVIEW.STATUSDATE, "
+ " PURCHVIEW.CONTRACTNUM, PURCHVIEW.REVISIONNUM, PURCHVIEW.SWLICTYPE, "
+ " PURCHVIEW.ORGID, PURCHVIEW.TOTALCOST"
+ " FROM PURCHVIEW "
// Include the Maximo where clause
+ " where " + params["where"]
+ " ORDER BY PURCHVIEW.CONTRACTNUM, PURCHVIEW.REVISIONNUM "
;

maximoDataSet.setQuery(sqlText);

Material Confidencial – Uso Interno 71


Este Script irá montar a query para buscar dados no Banco. Perceba que já estamos
adicionando a ClausulaWhere. O parâmetro where já é criado automaticamente pelo Template
assim como outros parâmetros core.

8. Selecione agora o método Fetch do Data Set “ mainDataSet” e adicione o seguinte script:

if (!maximoDataSet.fetch())
return (false);

// Add a line for each output column


// The specific get method should match the data type of the output column.
row["CONTRACTTYPE"] = maximoDataSet.getString("CONTRACTTYPE");
row["DESCRIPTION"] = maximoDataSet.getString("DESCRIPTION");
row["STATUS"] = maximoDataSet.getString("STATUS");
row["STATUSDATE"] = maximoDataSet.getTimestamp("STATUSDATE");
row["CONTRACTNUM"] = maximoDataSet.getString("CONTRACTNUM");
row["REVISIONNUM"] = maximoDataSet.getString("REVISIONNUM");
row["SWLICTYPE"] = maximoDataSet.getString("SWLICTYPE");
row["ORGID"] = maximoDataSet.getString("ORGID");
row["TOTALCOST"] = maximoDataSet.getDouble("TOTALCOST");

return (true);

Material Confidencial – Uso Interno 72


Este Script associa os dados recuperados do Banco de dados com as colunas do Data Set. As colunas
do Data Set não são criadas automaticamente como nos exemplos anteriores. O próximo passo será
criar estas colunas.

9. Para criar as colunas de um clique duplo no Data Set. Na tela que abrirá clique em Output
Columns e digite as colunas uma a uma. Observe que os nomes das colunas devem ser
idênticos aos digitados anteriormente no método Fetch.

Material Confidencial – Uso Interno 73


Clique em OK.

10. Para configurar o Data Set secundário, selecione o Data Set criado pelo Template(subDataSet),
clique em script, selecione o método open e adicione o seguinte script:

subDataSet = MXReportDataSetProvider.create(this.getDataSource().getName(),
this.getName());
subDataSet.open();

var sqlText = new String();

// Add query to sqlText variable.


sqlText = ""
+ " SELECT CONTRACTLINE.CONTRACTLINENUM, CONTRACTLINE.LINETYPE, "
+ " CONTRACTLINE.ITEMNUM, CONTRACTLINE.DESCRIPTION, CONTRACTLINE.ORDERQTY, "
+ " CONTRACTLINE.ORDERUNIT, CONTRACTLINE.UNITCOST, CONTRACTLINE.LINECOST, "
+ " CONTRACTLINE.LINESTATUS, CONTRACTLINE.CONTRACTNUM, "
+ " CONTRACTLINE.REVISIONNUM "
+ " FROM CONTRACTLINE "
// Include the Join
+ " WHERE CONTRACTLINE.CONTRACTNUM = '" + rows[0]["CONTRACTNUM"] + "'"
+ " AND CONTRACTLINE.REVISIONNUM = '" + rows[0]["REVISIONNUM"] + "'"
;

subDataSet.setQuery(sqlText);
Material Confidencial – Uso Interno 74
11. Selecione agora o método Fetch do Data Set “ subDataSet” e adicione o seguinte script:

if (!subDataSet.fetch())
return (false);

// Add a line for each output column


// The specific get method should match the data type of the output column.
row["CONTRACTLINENUM"] = subDataSet.getString("CONTRACTLINENUM");
row["LINETYPE"] = subDataSet.getString("LINETYPE");
row["ITEMNUM"] = subDataSet.getString("ITEMNUM");
row["DESCRIPTION"] = subDataSet.getString("DESCRIPTION");
row["ORDERQTY"] = subDataSet.getString("ORDERQTY");
row["ORDERUNIT"] = subDataSet.getString("ORDERUNIT");
row["UNITCOST"] = subDataSet.getDouble("UNITCOST");
row["LINECOST"] = subDataSet.getDouble("LINECOST");
row["LINESTATUS"] = subDataSet.getString("LINESTATUS");
row["CONTRACTNUM"] = subDataSet.getString("CONTRACTNUM");
row["REVISIONNUM"] = subDataSet.getString("REVISIONNUM");
return (true);
Material Confidencial – Uso Interno 75
12. Para criar as colunas de um clique duplo no Data Set. Na tela que abrirá clique em Output
Columns e digite as colunas uma a uma. Observe que os nomes das colunas devem ser
idênticos aos digitados anteriormente no método Fetch.

Material Confidencial – Uso Interno 76


13. Antes começar a estruturar o relatório, devemos deletar a tabela criada pelo Template. O
próximo passo é criar uma tabela e associá-la ao Data Set principal, para isto ao criarmos a
tabela, alterar o campo Data Set para mainDataSet.

Material Confidencial – Uso Interno 77


14. Na tabela criada, devemos criar três agrupamentos, o primeiro pelo ORGID, o segundo por
CONTRACTNUM e o terceiro por REVISIONNUM. Para criar os agrupamentos, selecione a
tabela, clique com o botão direito, selecione Insert Group e selecione Below. Faça as
configurações como na imagem abaixo.

Após clicar em OK, repetir o passo anterior e criar os agrupamentos por CONTRACTNUM e
REVISIONNUM. A tabela ficará como na imagem abaixo:
Material Confidencial – Uso Interno 78
Onde o ícone representa o cabeçalho do relatório e o ícone o rodapé. Os ícones , e
representam respectivamente o cabeçalho do agrupamento por ORGID, CONTRACTNUM e
REVISIONNUM e os ícones , e representam respectivamente o rodapé do
agrupamento por REVISIONNUM, CONTRACTNUM e ORGID.

15. Monte o layout conforme a imagem abaixo:

Material Confidencial – Uso Interno 79


Para preencher a linha de detalhes da tabela principal (representada pelo ícone ) deve-se criar outra
tabela e associá-la ao subDataSet. Não se esqueça de colocar uma borda inferior no cabeçalho e uma
borda inferior pontilhada na linha de detalhes da tabela interna.

16. Clique no botão e visualize como ficou o relatório.

Material Confidencial – Uso Interno 80


A clausula Where vai ser solicitada antes da geração do relatório se desejar faça algum filtro e clique
em OK.

17. O próximo passo é a publicação do relatório mo Maximo 7.1. Logue no Maximo, clique em
GoTo -> Administration -> Reporting -> Report Administration.

Material Confidencial – Uso Interno 81


18. Clique no ícone e preencha os campos como no exemplo abaixo:

Report File Name: Contrato_Compra_apostila.rptdesign | Detalhes do Contrato de Compra (Nome do


relatório | Descrição do relatório).
Application: CONTPURCH

Obs.: Os campos Report Type e Report Folder são preenchidos automaticamente quando se preenche
os dois campos anteriores. Se necessário altere estes campos.

19. Clique no ícone e salve.

Material Confidencial – Uso Interno 82


20. Clique em Select Action e Import Report.

Material Confidencial – Uso Interno 83


21. Clique em browse e indique o caminho do seu relatório. Em seguida clique em OK

Material Confidencial – Uso Interno 84


22. Salve novamente e clique no botão Generate Request Page e após apresentar uma mensagem
avisando que a request Page foi gerada clique em preview

Material Confidencial – Uso Interno 85


23. Clique em Submit e visualize o relatório.

Material Confidencial – Uso Interno 86


Mais exemplos de Relatórios BIRT podem ser encontrados nos links:
http://www.eclipse.org/birt/phoenix/examples/reports/
http://www.birt-exchange.com/

Material Confidencial – Uso Interno 87

Você também pode gostar