This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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 AllInOne) 156MB
File New Project Business Intelligence and Report Tools Report Project
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 http://jdbc.postgresql.org/download.html) 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
Obs.: neste exemplo estou usando o SGBD PostgreSQL, mas não existe diferença para o uso com outros SGBDs, apenas exigese que eles tenham um driver do tipo JDBC.
Para o MySQL o driver JDBC pode ser baixado de:http://dev.mysql.com/downloads/connector/j/5.1.html
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 NextNa caixa de texto contendo o select digite a consulta SQL, como neste exemplo:select nome,emailfrom public.clientes
Ao invés de digitar os campos também podemos efetuar duplos clique nos mesmos à esquerda. Ficará assim:
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
Veja que também existe suporte a JOIN. Basta clicar com o botão direito sobre Data Sets eNew Join Data Set
4 Layout do relatórioTabelas (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 caseinsensitivamente 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
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.
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:
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:
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.
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
Ribamar FS http://cursos.ribafs.org
Gerando Relatórios Web 15/23
Ao conluir redimensione o gráfico gerado.
Dica: existe um outro bom gerador de relatórios free e open source semelhante ao BIRT, que é o iReport. Quem interessar pode baixar daqui:
O BIRT tem um visualizador de relatórios em Java com Tomcat, que permite o acesso remoto aos relatórios gerados:http://pt.wikibooks.org/wiki/Aplicativos_em_PHP/Recursos_Extras/Geradores_de_Relat%C3%B3rios#Utilizando_o_BIRT_com_PHP_ou_simplesmente_via_Web
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 birtviewer, 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/birtviewer/run?__report=";$dest .= urlencode( realpath( $fname ) );header("Location: $dest" );?>
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.
• 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 );
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. N Y__locale Report locale Java locale value such as en, enus or chzh. JVM locale Y Y__report The path to the report design. None. Required. Y Y__document The path to the report document. None. Required. Y NreportParam Report parameter. As specified in the report design. As specified in the report design. Y Y
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:http://www.fpdf.org/en/script/script11.php
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:http://fpdfgenerator.sourceforge.net/
Também trago um exemplo de aplicativo de condomínios que imprime os recibos com fPDF.
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/35frameworkagil Descompactar e o gerador de relatórios encontrase 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.