Académique Documents
Professionnel Documents
Culture Documents
RESUMO
ABSTRACT
This article presents the development of a report for a system, implemented in Java, using
two differents strategies. The techniques and the tools used in this development are presented
here, specially the JasperReports framework and the iReport program, as well as the results
gotten during his accomplishment.
KEY-WORDS: JASPERREPORTS, IREPORT, REPORTS, JAVA
2. JASPERREPORTS
2
Segundo Shahi (2007), a gerao de relatrios neste framework envolve os
seguintes componentes e atividades:
A parte grfica (design) do relatrio definida em um arquivo especfico no
formato XML. Para tanto, existem tags XML que obedecem a uma rgida estrutura,
vocabulrio e restries declarados em um arquivo DTD (jasperreports.dtd). Usando XML, o
designer pode definir textos estticos, imagens, linhas, formas geomtricas, entre outros e
suas localizaes dentro do relatrio. Pode-se tambm definir os campos que sero
preenchidos dinamicamente a partir de dados de um aplicativo.
Aps isso, o arquivo XML compilado, gerando um arquivo .jasper. Isto
implica na compilao de todas as expresses Java definidas no arquivo XML, sendo ento
realizadas vrias verificaes estticas (em tempo de compilao).
Esse arquivo .jasper, utilizado por diferentes objetos JasperReports para
gerao de relatrio: JasperReport, JasperPrint e JasperViewer; e
Os dados necessrios para o relatrio podem ser obtidos de diferentes fontes,
como um SGBD ou um arquivo XML. Sendo assim, o framework suporta vrios tipos de
datasources (fonte de dados) por meio de uma interface especfica chamada JRDataSource.
A figura a seguir representa as atividades necessrias ao processo de gerao
de relatrios empregado o framework.
3
3. IREPORT
4
Na parte esquerda da tela, apresentado o Report Inspector, no qual so exibidos
os componentes do relatrio, como as sees (bands), campos (fields), variveis (variables),
entre outros.
Na direta, exibida a paleta de componentes (Palette), a qual permite a incluso
dos mesmos ao relatrio apenas arrastando o componente desejado para o relatrio que est
sendo desenvolvido na parte central da tela.
Acima do relatrio exibida a barra de ferramentas, que permite a configurao
dos bsica de alguns componentes do relatrio, a compilao e a exibio de diferentes
formatos do mesmo (Design, XML e Preview).
Na tela principal do iReport (neste exemplo ser utilizada a verso 4.0), deve-se
criar uma nova conexo selecionando a opo "Report Datasources", da barra de
ferramentas, conforme a prxima figura.
5
Ser exibida, ento, a tela a seguir que permite a criao a gerncia das conexes.
Nela, deve-se selecionar a opo "New".
6
Deve-se informar o nome (Name) para a conexo, escolher o driver MySQL em
JDBC Driver e substituir "MYDATABASE" pelo nome do banco de dados, na opo JDBC
URL. Neste exemplo utilizou o nome "exemplohibernate" para a conexo.
Em username e password, informa-se o usurio e a senha do banco de dados.
Marcar tambm a opo "Save password".
Se quiser, pode-se verificar se a conexo est correta na opo "Test".
Finalmente, guarde os dados da conexo na opo "Save".
Aps criada a conexo, deve-se desenvolver o layout do relatrio. Para isso, crie
um novo documento JasperReports usando o item de menu "File/New...". Ser apresentada
ento a seguinte tela.
Selecionar a opo "Blank A4", conforme a figura anterior, e aps isso, a opo
"Open this Template". Na tela seguinte, d o nome "rptDepartamentos" para o arquivo,
7
selecione a opo "Next" para que, finalmente, seja criado o arquivo. O programa ir criar o
arquivo rptDepartamentos. jrxml no diretrio que foi indicado.
Aps isso, apresentado ento um modelo de relatrio com diferentes bandas ou
sees (bands). Um relatrio JasperReport pode ser dividido nas seguintes sees:
[Gonalves 2008]
1. Title: nesta banda define-se o ttulo do relatrio;
2. Page Header: apresentada no comeo de cada pgina impressa;
3. Column Header: banda apresentada no comeo de cada coluna;
4. Detail 1: local de exibio dos dados de cada item de registro;
5. Column Footer: apresentada aps cada coluna;
6. Page Footer: rodap de cada pgina;
7. Last Page Footer: banda apresentada ao final da ltima pgina;
8. Summary: seo de sumrio, apresentada somente no trmino do relatrio; e
9. Backgound: permite a insero de marcas d'gua, por exemplo.
A prxima figura apresenta um modelo de relatrio criado pelo iReport. Observe
que o relatrio possui diferentes sees j definidas pela ferramenta. Se o usurio desejar,
pode remover alguma seo que no seja necessria, ou ainda alterar suas propriedades.
8
Na barra de ferramentas, selecionar a conexo que deseja-se utilizar, conforme
mostra a prxima figura. Neste tutorial empregou-se a conexo exemplohibernate, criada no
item anterior.
Ser exibida, ento, uma tela que recupera automaticamente os atributos do banco
de dados, facilitando a criao dos campos do relatrio. Na parte superior da tela, digite uma
consulta SQL para recuperar todos os dados da tabela Departamento. Sero exibidos ento
todos os atributos da tabela, conforme a prxima figura. Selecione, ento a opo Ok.
9
Observe que em Report Inspector, na parte esquerda da tela, so exibidos os
campos (Fields), as sees, os parmetros (Parameters), as variveis (Variables) do relatrio,
como pode ser observado na prxima figura.
Arraste os campos para a seo Detail 1 do formulrio. Com isso, define-se quais
os campos sero dinmicamente exibidos no relatrio.
O iReport possui vrias facilidades para auxiliar na melhoria do visual do
relatrio. Para tanto, pode-se acrescentar diferentes componentes como textos, imagens e
linhas, alterar fontes, mudar alinhamento, remover sees, entre outros para aprimorar o
projeto do relatrio.
Para criar os textos estticos do relatrio utiliza-se o componente Static Text da
paleta (Palette). Na parte inferior direita do relatrio foi includa a numerao automtica das
pginas, utilizando o componente Page number da paleta.
O relatrio desenvolvido no exemplo possui somente as sees: Title, Column
Header, Detail 1 e Page Footer. As demais sees foram retiradas do relatrio para melhorar
a aparncia do mesmo.
A figura a seguir apresenta o layout desenvolvido para o relatrio.
10
Figura 12: Layout do relatrio
5. ALTERAO DA APLICAO
11
Figura 14: Gerncia de bibliotecas no NetBeans
Crie uma nova biblioteca, acessando a opo new Library da tela anterior.
Atribua para ela o nome Jasper e adicione os arquivos necessrios. Alm da biblioteca do
JasperReports (jasperreports-3.7.0.jar) so necessrias tambm outras bibliotecas:
Commons BeanUtils Component (verso 1.7 ou posterior);
Commons Collections Component ( verso 2.1 ou posterior);
Commons Javaflow (verso Sandbox );
Commons Logging Component ( verso 1.0 ou posterior);
Commons Digester Component ( verso 1.7 ou posterior);
Groovy ( verso 1.5.5 ou posterior); e
iText ( verso 1.3.1 ou posterior). [JasperForge 2007]
De acordo com a funcionalidade necessria, podero ser requeridas ainda outras
bibliotecas. Aps isso, adicione a biblioteca criada ao projeto.
Agora, dentro do pacote Report, crie uma classe para preencher os dados e exibir
o relatrio, chamada GerarRelatorioDepartamentos, com um construtor pblico e inclua nela
o seguinte mtodo.
12
1. public void gerar( ) throws ClassNotFoundException, SQLException{
2. Map parameters = new HashMap();
3. InputStream reportStream = this.getClass().getResourceAsStream
("\\rptDepartamentos.jasper");
4. try {
5. Class.forName("com.mysql.jdbc.Driver");
6. Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/exemplohibernate
", "root", "root");
7.
8. JasperReport jrpt = (JasperReport)
JRLoader.loadObject(reportStream);
9. JasperPrint jasperPrint = JasperFillManager.fillReport(jrpt, parameters,
conn);
10. JasperViewer.viewReport(jasperPrint, false);
11. } catch (JRException e) {
12. e.printStackTrace();
13. }
14. }
13
Figura 15: Exibio do relatrio no JasperViewer
14
1. public boolean next() throws JRException {
2. throw new UnsupportedOperationException("Not supported yet.");
3. }
4.
5. public Object getFieldValue(JRField jrf) throws JRException {
6. throw new UnsupportedOperationException("Not supported yet.");
7. }
7. CONSIDERAES FINAIS
16
A utilizao da ferramenta iReport apresentou bons resultados, agilizando o
desenvolvimento do projeto do relatrio. Alm disso, o emprego do framework simplificou os
processos de gerao e exibio do relatrio.
A segunda forma utilizada para gerao do relatrio, empregando-se um data
source, foi considerada mais adequada, pois utiliza a conexo do prprio sistema com o
banco de dados, facilitando a manuteno do software.
Prope-se a aplicao, em trabalhos futuros, das ferramentas apresentadas para o
desenvolvimento de aplicaes de outras plataformas, em especial, para softwares Web.
8. REFERNCIAS BIBLIOGRFICAS
17