Upload
trinhdan
View
215
Download
0
Embed Size (px)
Citation preview
Ferramentas gráficas e relatórios
Aula 1
Carlos Eduardo de Carvalho Dantas
“O silêncio é de ouro e muitas vezes é resposta.”
Introdução;
Relatórios com Java;
JasperReports;
Ireport;
Criação de relatórios com o uso do assistente;
Passagem de parâmetros;
Exportando para outros formatos
Sumário
RAD → Rapid Application Development;
Siglas e acrônimos
Introdução
Criação de relatórios com iReport & JasperReports;
Uso de servidores de relatórios (JasperServer);
Utilização de gráficos (JfreeChart);
Recursos do Java 2d;
Projeto integrador envolvendo
conteúdos de outras disciplinas
O que a disciplina abrange
Funcionalidades específicas da web;
Recursos específicos de persistência;
O que a disciplina não abrange
Uma maneira agradável de apresentar os dados vindos de alguma base de informação com sua aparência formatada.
Formatação padronizada para impressão, tirar conclusões, analisar resultados.
O que é um relatório?
Desenvolvedores habituaram-se a contar com geradores de relatórios visuais em seus ambientes de desenvolvimento RAD;
A maioria dos geradores de relatórios populares são aplicações independentes escritas em C, em muitos dos casos suportando apenas a plataforma Windows;
Desenvolver Relatórios é uma rotina comum
para o desenvolvedor;
O sucesso de cada ferramenta de relatório dependia da integração com uma determinada plataforma.
O que é um relatório?
Report Services;
Crystal Reports;
Eclipse Birt (Business Inteligence and Report Tools);
JasperReports & Ireport;
Rave Reports;
Quick Report;
Etc.. Etc..
Ferramentas de geração de relatórios
Portabilidade;
Possibilidade de usar como fonte de dados coleções de objetos Java recuperadas via EJBs, Hibernate, JAXB ou web services;
Fácil interação com objetos Java.
Gerador de relatórios escrito em Java
Com Java e sua nova cultura Open Source, bem poucas ferramentas de relatórios se destacavam neste cenário;
Em 2001 nasce o JasperReports, criado por Teodor Danciu;
A versão atual é a 4.1.3 e o download pode ser realizado em:
http://sourceforge.net/projects/jasperreports/files/
Relatórios com Java
Um poderoso Framework Open Source para geração de relatórios multiplataforma;
Escrito em Java (portabilidade);
Permite a geração dinâmica de relatórios em diversos formatos, como PDF, HTML, XLS, CSV e XML;
Possui uma pré-visualização em Swing (JasperViewer);
Pode ser utilizada em praticamente qualquer aplicação Java, incluindo aplicações desktop ou Web;
Escrito na forma de um documento XML (extensão .jrxml).
O JasperReports é:
Com JasperReports, o ciclo de vida de um relatório é parecido com o de uma classe Java:
1 - Em Java:
Código fonte descrito em um arquivo .java de acordo com as regras de sintaxe da linguagem;
O código é compilado gerando um arquivo .class;
Quando usado, o arquivo .class é carregado para a memória e instanciado pelo interpretador Java e durante a execução, os atributos serão instanciados.
JasperReports
No JasperReports...
O relatório é codificado em xml, usando tags e atributos definidos em jasperreports.dtd;
No arquivo criado .jrxml está descrita a estrutura do relatório: posição dos textos, imagens, formas geométricas, como recuperar dados necessários, cálculos de totalização, quais parâmetros devem ser passados, etc..
No JasperReports...
O arquivo .jrxml é compilado, gerando um arquivo com extensão .jasper (classe java compilada), sendo representado por um objeto da classe JasperReport;
O arquivo .jasper também é conhecido como um relatório ”pré-definido”
No JasperReports...
É necessário uma fonte de dados para produzir os dados a serem exibidos;
A fonte de dados pode ser um datasource ou uma conexão ao banco de dados e uma query sql
Opções de entrada de dados
net.sf.jasperreports.engine.JRDataSource
JRBeanArrayDataSource
JRBeanCollectionDataSource
JRResultSetDataSource
java.sql.Connection
<queryString><![CDATA[SELECT * from produtos]></queryString>
No JasperReports...
Neste passo é possível enviar um objeto Map com alguns parâmetros. O jasper será linkado com os parâmetros e com o datasource ou conexão;
O resultado é um objeto da classe JasperPrint, que pode ser serializado com extensão .jrprint;
O objeto JasperPrint é o relatório final;
No JasperReports...
O objeto final JasperPrint pode:
Ser visualizado diretamente por um aplicativo swing chamado JasperViewer (que vem embutido no JasperReports);
Ser exportado para outros formatos
JasperReports
Classes
JasperDesign → Representa a definição do relatório. A partir do template XML é criado um JasperDesign;
JasperReport → Representa o JasperDesign compilado. O processo de compilação verifica o design do relatório e compila o design em um objeto JasperReport;
JasperPrint → Representa o relatório gerado. É criado um JasperPrint a partir de um JasperReport, contendo o relatório preenchido.
Projeto RelatoriosJasperDesktop
Classe RelatorioResultSet.java
Exportar o relatório para outros formatosA interface JRExporter é responsável por exportar um JasperPrint para outros formatos. Implementações:
JRPdfExporter;
JExcelApiExporter;
JRHtmlExporter;
JRRtfExporter;
JROdtExporter;
JRCsvExporter
Projeto RelatoriosJasperDesktop
Classe ExportarRelatorio.java
JasperReports em aplicações Web
Projeto RelatoriosJasperWeb
Classe RelatorioServlet.java
iReport
JasperReports é uma engine poderosa, porém criar relatórios manipulando diretamente arquivos .xml é um suicídio;
Qual é a solução?
iReport
Programa Open Source, capaz de criar visualmente os mais complexos relatórios para aplicações Java dentro dos limites do JasperReports;
Escrito em Java = 100% multiplataforma;
Desenhador visual de relatórios, gerando os arquivos .jrxml e .jasper;
Facilita testes e criação de layout;
Código fonte distribuído gratuitamente pela licença GNU;
iReport
Suporte a 100% das tags XML do JasperReports;
Editor WYSIWYG para criação de relatórios;
Suporte a qualquer bando de dados acessível pela ponte JDBC;
Assistente para criar relatórios rapidamente;
Suporte para modelos de documentos (templates);
Suporte a Gráficos;
Bibliotecas de Estilos, etc..
Ireport - benefícios
Simplificação considerável dos processos abaixo:
1 – Consultas em çinguagem SQL ou HQL do Hibernate e EJB QL (Enterprise Java Beans Query Language);
2 - Sub-Relatórios;
3 - Relatórios com Gráficos (JFreeChart);
4 - Crosstab;
iReport
Em 9 de Outubro de 2002, Giulio Toffoli lança o iReport;
Em 2005, a JasperSoft, que é a mantenedora do JasperReports tornou esta ferramenta oficial na construção de relatórios para JasperReports;
Em 2007 o JasperReports e o IReport chegaram juntos à sua segunda versão;
Em 30 de maio de 2008 foi disponibilizado a terceira versão do IReport e do JasperReports;
Em 2008 o iReport passou a oferecer um plugin para o NetBeans.
Ireport - curiosidades Quando o iReport executa pela primeira vez, cria
configurações regionais através da pasta C:\Documents and Settings\usuario\.iReport;
No diretório \ireport\modules\ext do iReport, repare nas libs que estão no diretório, como hibernate3.jar. Neste caso, repare que qualquer framework em que o iReport comunica, as libs já estão no próprio iReport facilitando o uso. Veremos uma amostra disso ao configurar uma conexão com o Banco de Dados;
Em alguns casos, devido à localização de alguns arquivos, quando o iReport é fechado e aberto novamente, os “Recent Files” na opção de menu File não os exibe. O erro ocorre porque o caminho pode conter caracteres que são inválidos no formato UTF-8, formato padrão do iReport.
Ireport – criar conexão
Ireport – criação de relatórios com o uso do assistente
Ireport – criação de relatórios com o uso do assistente
Ireport – criação de relatórios com o uso do assistente
Ireport – alterar visualizador de relatórios e XML
Gerar o relatório por uma aplicação
Projeto RelatoriosiReportDesktop
Classe RelatorioAssistente.java
Passagem de parâmetros
Projeto RelatoriosiReportDesktop
Classe RelatorioParametros.java
Retomar o projeto entregue na disciplina Persistência com Jdbc e Jpa, adaptá-lo a uma aplicação web e criar relatórios para suas respectivas entidades, aplicando parâmetros e exportando para pdf.
Exercício para 12/11
[1] “Dominando Relatórios JasperReports com IReport”; Edson Gonçalves; Editora Ciência Moderna; 2008;
[2] iReport 3.7; Shamsuddin Ahammad; 2010;
[3] “The definitive Guide to JasperReports”; Teodor Danciou and Lucian Chirita.
[4] “The definitive Guide to iReport”; Giulio Toffoli.
[5] “Artigo Jasper Reports & IReport – GUJ (www.guj.com.br);
[6] Artigo Jasper Reports & Ireport “JavaMagazine”; ed 37
Referências bibliográficas