Vous êtes sur la page 1sur 23

Gerando Relató rios Web

1/23

Criando Relató rios Web

 

Í

ndice

BIRT

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

2

iReport.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

20

. HTML e CSS .

fPDF

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

22

23

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

2/23

BIRT (Biseness Intelligence Reporting Tools)

O BIRT é um gerador de relató rios baseado no Eclipse. Muitos recursos e muito f ácil de usar. Tamb ém possibilita o uso remoto dos relat ó iros gerados atrav és de um visualizador com o Tomcat.

Downloads ­ http://www.eclipse.org/birt (baixar a vers ão All­In­One) ­ 156MB

V ídeo Tutorial ­

Acesso remoto com tomcat ­ http://www.eclipse.org/birt/phoenix/deploy/

Criando Relat ó rios com o BIRT (Business Intelligence and Report Tools)

O BIRT é um gerador de relató rios aos moldes do Crystal Report e do iReport, que inclusive tem integração com o PHP e outras linguagens server side.

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

Criar um Novo Relat ó rio

Criar Projeto do tipo BIRT

3/23

File ­ New ­ Project ­ Business Intelligence and Report Tools ­ Report Project

­ Business Intelligence and Report Tools ­ Report Project Clicar sobre o nome do Projeto criado

Clicar sobre o nome do Projeto criado com o bot ão direito e New ­ Report

1 ­ Criando um relat ó rio partindo de um blank report design

­ Crie um novo projeto

­ Crie um novo Relató rio

­ Em File name entre com clientes.rptdesign e Next

­ Em Report template deixe Blank Report e Finish

­ Observe que a janela de Layout (ao centro e à direita) exibe o nome do relató rio acima e seu conteú do está vazio. À esquerda temos a Paleta de Ferramentas para o design do relat ó rio. Logo à direita da Paleta temos a aba Data Explorer, para a conex ão com bancos de dados.

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

4/23

2 ­ Adicionar um Data Source (Fonte de dados) Do tipo JDBC do PostgreSQL, para usar um banco de dados no nosso relat ó rio.

­ Clicar na aba Data Explorer (acima e à direita da Paleta)

­ Clicar com botão direito do mouse sobre New DataSource

­ Selecionar JDBC Data Source e Next

­ Deve antes ter o jdbc para o postgreSQL em algun diret ó rio (baixar de

­ Clicar em Manage Drivers

­ Clicar em Add e indicar o driver jdbc do portgresql

­ Selecionar e clique em OK

­ Em Driver Class selecionar o driver correto (org.postgresql.Driver xxx)

­ Em Database URL entre com algo como:

jdbc:postgresql://127.0.0.1:5432/estoque

­ Digite username e password do banco

­ Clique em Test Connection

­ Se tudo ok clique em Finish

­ Clique em Test Connection ­ Se tudo ok clique em Finish Obs.: neste exemplo estou

Obs.: neste exemplo estou usando o SGBD PostgreSQL, mas n ão existe diferen ça para o uso com outros SGBDs, apenas exige­se que eles tenham um driver do tipo JDBC.

Para o MySQL o driver JDBC pode ser baixado de:

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

5/23

3 ­ Criar um Data Set (conjunto de registros ou consulta)

­ Clicar em Data Sets com o bot ão direito e New DataSet

­ Abaixo de JDBC Data Source clique em Data Source e Next

Na caixa de texto contendo o select digite a consulta SQL, como neste exemplo:

select nome,email from public.clientes

­ Ao inv és de digitar os campos tamb ém podemos efetuar duplos clique nos mesmos à esquerda. Ficar á assim:

duplos clique nos mesmos à esquerda. Ficar á assim: Para ter uma consulta din â mica

Para ter uma consulta din âmica adicione par âmetros assim:

"select nome,email from public.clientes WHERE nome LIKE " + params["nome"]

­ Clique em Finish. Apenas clique em OK.

­ Duplo clique no data set clientesceara à esquerda e clique em Preview Results à esquerda para visualizar os registros e se certificar de que est á tudo ok.

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

6/23

Gerando Relat ó rios Web 6/23 Veja que tamb é m existe suporte a JOIN. Basta

Veja que tamb ém existe suporte a JOIN. Basta clicar com o bot ão direito sobre Data Sets e New Join Data Set

4 ­ Layout do relat ó rio

Tabelas (tables) interagem com todos os registros retornados por um data set. Isto torna f ácil a exibição de registros em forma de linhas e colunas.

­ Clique na aba Palette

­ Arraste o controle Table da paleta e solte no editor de layout à direita. Ser á perguntado sobre quantas colunas e quantos detalhes. Deixe com 2 e 1 e OK.

­ Clique na aba Data Explorer, expanda Data Sets e depois expanda Data Set. As colunas especificadas na consulta aparecem abaixo: nome e email.

­ Arraste "nome" para a primeira c élula do detalhe da primeira coluna, onde est á Detail Row. De forma que fique na segunda linha e apare ça o label na primeira.

­ Faça o mesmo com a coluna email na segunda coluna em detalhe.

Para mudar a formatação de qualquer componente do relató rio apenas selecione e clique no bot ão abaixo, em Properties ­ Font ou outra formata ção.

Clique em Preview para ver como est á. Tamb ém para uma visualiza ção profissional v á em File ­ View

J á temos um relató rio contendo os dois campos mas sem nenhuma formata ção.

5 ­ Ordenando registros

­ Abra o report no layout editor e selecione abaixo properties. No editor clique em Table (abaixo e à esquerda da área da tabela).

­ Ao mover o mouse por essa região aparece Table, então clique nesse botão Table. Abaixo aparecerão as propriedades da Tabela.

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

7/23

­ Clique na Aba Sorting. Clique em Add para adicionar uma express ão. Em Key selecione "nome" e deixe Ascendente.

­ Execute o Preview para ver o resultado.

Observe que nomes iniciados com maiú sculas aparecem no in ício da lista. O BIRT ordena dados tipo string usando c ó digos UCS2. Em conjuntos de caracteres baseados em ASCII, as letras maiú sculas têm valor semelhante às min ú sculas. Para ordenar case­insensitivamente usar:

row["nome"].toUpperCase( )

Na express ão para ordenar.

6 ­ Adicionando T ítulo ao Relat ó rio

Para isso usaremos um controle Text e tags HTML. Selecione o controle Text na Paleta e arraste para cima da tabela.

Ao aparecer o diálogo do controle Text onde tem Auto mude para HTML e digite o conte ú do abaixo:

<CENTER><B><span style="font-size: larger"> Relatório de Clientes</B></span><BR> <FONT size="small">Somente para uso interno</FONT><BR><BR> Relatório Gerado em <VALUE-OF>new Date( )</VALUE-OF></CENTER><BR><BR>

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

8/23

Criação de Relatório com Gráfico de Barras

Crie um novo relatório (rpt_pedidos.rptdesign) Tipo blank report

Crie este pequeno banco para o relatório:

banco - produto

create table produtos

(

codigo int primary key, descricao char(45) not null, quantidade int not null

);

insert into produtos values (1, 'Banana prata', 200); insert into produtos values (2, 'Goiaba', 60); insert into produtos values (3, 'Manga Jasmin', 100); insert into produtos values (4, 'Pera', 120); insert into produtos values (5, 'Maçã', 100); insert into produtos values (6, 'Tangerina', 30); insert into produtos values (7, 'Manga Tamaracá', 90); insert into produtos values (8, 'Manga Jasmin', 50); insert into produtos values (9, 'Manga Rosa', 100); insert into produtos values (10, 'Banana Maça', 100); insert into produtos values (11, 'Banana Pacovã',500); insert into produtos values (12, 'Banana Casca Verde', 60);

Crie outro Data Source também o banco estoque. No Driver Class selecione o PostgreSQL. No Driver URL entre novamente:

jdbc:postgresql://127.0.0.1:5432/produto

Criar um novo Data Set com a seguinte consulta:

select descricao, quantidade from produtos order by quantidade desc

Após finalizar o Data set clique na aba da Paleta.

Arraste o controle Chart e solte na região do centro (layout).

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

9/23

Gerando Relat ó rios Web 9/23 Aceite este tipo de gráfico (Bar) e apenas clique em

Aceite este tipo de gráfico (Bar) e apenas clique em Next.

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

10/23

Agora veja que ele já traz selecionado nosso Data Set, com os dois campos abaixo. Clique em Next.

ele já traz selecionado nosso Data Set, com os dois campos abaixo. Clique em Next. Ribamar

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

11/23

Agora podemos alterar o título e algumas outras propriedades do gráfico/relatório:

e algumas outras propriedades do gráfico/relatório: Para alterar o título selecione à esquerda Title e digite

Para alterar o título selecione à esquerda Title e digite o novo Chart Title. Finalize para voltar para o layout.

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

12/23

Então redimensione o gráfico no layout para ficar mais interessante:

o gráfico no layout para ficar mais interessante: Para visualizar em outros formatos: Run - View

Para visualizar em outros formatos:

Run - View Report

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

13/23

Criação de Relatório com Gráfico de Pizza

Vamos criar um novo relatório para o mesmo banco, mesmo Data Source e mesmo Data Set.

jdbc:postgresql://127.0.0.1:5432/produto

select descricao, quantidade from produtos order by quantidade desc

Arraste o controle Chart e altere para Pie.

quantidade desc Arraste o controle Chart e altere para Pie. Clique em Next e veja que

Clique em Next e veja que já traz selecionado nosso Data Set. Caso tivéssemos vários Data Sets deveriamos selecionar o desejado.

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

14/23

Gerando Relat ó rios Web 14/23 Ribamar FS ­ http://cursos.ribafs.org

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

15/23

Ao conluir redimensione o gráfico gerado.

rios Web 15/23 Ao conluir redimensione o gráfico gerado. Dica: existe um outro bom gerador de

Dica: existe um outro bom gerador de relatórios free e open source semelhante ao BIRT, que é o iReport. Quem interessar pode baixar daqui:

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

16/23

Acesso Remoto aos Relatórios

O BIRT tem um visualizador de relatórios em Java com Tomcat, que permite o acesso remoto aos relatórios gerados:

Utilizando o BIRT com PHP ou simplesmente via Web

Tutorial de Instalação e uso do Tomcat e do BIRT

Aqui para baixar somente o JDK (baixei o JDK 5.0 Update 9)

B2BBDB# (Windows)

B2BBDB# (Linux)

Tomcat Download ­ http://tomcat.apache.org/

(Linux)

(Windows)

Caso sua vers ão do J2SE seja 1.4 baixar tamb ém o JDK 1.4 Compatability Package (duprtiot n ão precisa):

(Windows)

Instalação e Configuração do J2SE

Executar

Mover para o diretó rio /opt

sudo mv jdk­1_5_0_09­linux­i586.bin

chmod u+s

sudo ./jdk­1_5_0_09­linux­i586.bin

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

17/23

Editar seu script de inicializa ção para adicionar a variável de ambiente JAVA_HOME:

sudo gedit /etc/bash.bashrc

JAVA_HOME=/opt/jdk1.5.0_09

CLASSPATH=.:$JAVA_HOME/lib/tools.jar

CATALINA_HOME=/home/ribafs/prog/tomcat # antes e ap ós o igual n ão pode haver espaços

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH CATALINA_HOME

Para surtir efeito restart o ambiente gr áfico fazendo um logoff ou Ctrl+Alt+Backspace.

Instalando e configurando o Tomcat

­ Descompactar apache­tomcat­5.5.20.tar.gz

­ Criar a variável de ambiente para o Tomcat:

­ Descompactar o apache­tomcat­5.5.20­compat.tar.gz no raiz do diret ó rio do tomcat /home/ribafs/prog/tomcat

Testando o Tomcat

Apontar o browser para o endereço http://localhost:8080

Administrando o Tomcat

No Windows a instala ção via Installer j á deixa pronto.

Edite o arquivo /home/ribafs/prog/tomcat/conf/tomcat­users.xml e adicionar ú ltima linha abaixo:

<?xml version='1.0' encoding='utf­8'?> <tomcat­users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="role1" password="tomcat" roles="role1"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="admin" password="admin" fullName="Tomcat Administrator" roles="admin,manager"/> </tomcat­users>

Com usu ário e senha (admin para ambos)

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

18/23

Abrir no browser em http://127.0.0.1:8080/admin/

Entre com admin e admin

Instalando e usando o Visualizador de Relatórios do BIRT

Download ­ http://download.eclipse.org/birt/downloads/ (procure por Birt Runtime correspondente à vers ão do seu BIRT):

Descompactar e copiar o subdiret ó rio WebViewerExample para o diret ó rio /home/ribafs/prog/tomcat/webapps.

Renomear o WebViewerExample para birt­viewer (opcionalmente)

Abra o link no browser http://localhost:8080/manager/html

Entre com admin e admin.

À esquerda clique em /birt­viewer e veja que abre­se o visualizador web de relat ó rios do BIRT.

Caso deseje abrir um relató rio seu já criado, copie para /home/ribafs/prog/tomcat/webapps/birt­ viewer e chame no browser assim:

Instalando o Driver JDBC do seu SGBD

Copie para a pasta:

birt­viewer/WEB­INF/platform/plugins/org.eclipse.birt.report.data.oda.jdbc_2.2.0.v20061009­

0630/drivers

postgresql­8.1­407.jdbc3.jar (no meu caso)

Observe que "v20061009­0630" vai depender da sua vers ão.

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

19/23

Abrindo Relatório de Script PHP

Supondo que deseje abrir o relató rio "rpt_produtos.rptdesign" na web. Depois de tudo pronto e de ter copiado o relató rio para a pasta birt­viewer, basta chamar assim:

Se preferir formas mais sofisticadas veja estas sugeridas na documenta ção do BIRT:

<?php $fname = "./clientes.rptdesign"; // Redirect browser $dest = "http://localhost:8080/birt­viewer/run? report="; $dest .= urlencode( realpath( $fname ) ); header("Location: $dest" ); ?>

rio</a>

Passando parâmetros

<?php $fname = "./clientes.rptdesign"; // Redirect browser $dest = "http://localhost:8080/birt­viewer/run? report="; $dest .= ";sample=" . urlencode( $paramValue ); $dest .= urlencode( realpath( $fname ) ); header("Location: $dest" ); ?>

Parâmetros de formulários

Deally, we could use PHP to create a UI form that prompts for the report parameters. The BIRT viewer creates this form in Java using information in the report design. Unfortunately, at present, there is no way to retrieve the raw parameter descriptions from the BIRT viewer using a URL. Instead, there are two alternatives we can use.

First, if we know the parameters ahead of time, we can design a custom form in PHP that prompts the user for them. This works if we have a small number of reports, or if we need to create a specialized parameter page for each report anyway.

Second, we can let the BIRT viewer display the parameter page using the frameset URL. Generating Reports Dynamically

Finally, PHP provides one additional BIRT integration option: the ability to generate report designs dynamically for a specific task. For example, suppose you have a bug tracking system, and you'd like your user to create their own reports via the web. You can ask the user for the columns to display, then use PHP to create a BIRT report design customized to display those columns. PHP is ideal for this: it allows us to insert scripting directly into HTML. Since a BIRT design is XML, and XML is close enough to HTML for PHP, we can "trick" PHP into generating a BIRT report design instead of an HTML page.

To generate a report design, do the following:

Create a BIRT report design typical of the kind of report you want to create.

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

20/23

Create a PHP template file that contains this design. Insert the contents of the design file in place of the HTML you'd usually put into a PHP file.

Redirect PHP's output from the template file into a report design file.

Use PHP to generate BIRT XML for the table headings and cells the user wants. Use your report design as a template for what is needed. Consult the ROM spec for details on various elements and properties.

Within the data set in your template, create an SQL query that fetches the required columns. (Works with other data set types as well.)

Use the code above to redirect the browser to run that report using the BIRT viewer.

The following PHP code redirects the output of a PHP page, template.inc, into a report design called temp.rptdesign:

ob_start( );

require "template.inc";

$page = ob_get_contents( ); ob_end_clean( ); $fw = fopen( "temp.rptdesign", "w" ); fputs( $fw, $page, strlen( $page ) );

fclose( $fw );

Opções avançadas

List of Options

The available viewer options include:

Option

Description

Values Default

frameset

run

format

The output format

html or pdf

html

N

Y

isnull

Identifies that a report parameter has a null value

Parameter name None. Required.

locale

JVM locale

report

N

Y

Report locale

Y The path to the report design.

Java locale value such as en, en­us or ch­zh.

None. Required.

Y

Y

Y

document

The path to the report document.

None. Required.

Y

N

reportParam

As specified in the report design.

Report parameter.

As specified in the report design. Y

Y

Veja os originais para maiores detalhes:

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

21/23

Gerador de Relatório iReport

Ótimo tutorial sobre o iReport, inclusive com o acesso via web (com java)

www.furutani.eti.br/tutoriais/Mini­Tutorial_Relatorios_Java_JasperReports_e_iReport.pdf

Tutorial de iReport

Starting with JasperReports by Gregory Beumer

Manual do iReport

iReport Documentação

Tutorial JasperReports - IReports

Outro tutorial em português

A Tutorial on Generating Reports by iReport

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

22/23

O fPDF é uma alternativa para criação de relatórios em PDF de aplicativos e sites em PHP. Ele dá trabalho, pois precisamos criar cada detalhe do que será exibido mas por outro lado permite um maior controle da tela.

No site oficial existe vários exemplos na seção de scripts, inclusive um desenvolvido por min:

Aqui também trago um pequeno gerador de código para o fPDF, feito em JavaScript que ajuda na elaboração de relatórios com fPDF, que é o fpdfgenerator, que encontra-se no SourceForge:

Também trago um exemplo de aplicativo de condomínios que imprime os recibos com fPDF.

Ribamar FS ­ http://cursos.ribafs.org

Gerando Relató rios Web

HTML e CSS

23/23

O Framework Ágil vem com um pequeno gerador de relató rios com acesso a bancos, em HTML e CSS.

Download ­ http://cursodephp.ribafs.org/down/ferramentas/relatorios/relatorios_htmlcss.zip Framework Á gil ­ http://web.ribafs.org/frameworks/35­framework­agil Descompactar e o gerador de relató rios encontra­se na pasta admin.

Isolei o gerador de relató rios em HTML e CSS do Framework Á gil e estou oferecendo aqui.

Observação: Todas essas ferramentas são inteiramente free e open source.

Ribamar FS ­ http://cursos.ribafs.org