Dominando Relatorios JasperReports com iReport

25
EDSON GONÇALVES Dominando Relatórios JasperReports com iReport

description

Dominando Relatorios JasperReports com iReport.Material sobreJasper reports

Transcript of Dominando Relatorios JasperReports com iReport

Page 1: Dominando Relatorios JasperReports com iReport

EDSON GONÇALVES

Dominando RelatóriosJasperReports com iReport

Jasper.indd IJasper.indd I 8/11/2007 22:26:298/11/2007 22:26:29

Page 2: Dominando Relatorios JasperReports com iReport

Jasper.indd IIJasper.indd II 8/11/2007 22:26:388/11/2007 22:26:38

Page 3: Dominando Relatorios JasperReports com iReport

Este livro é dedicado a minha fi lha Luanna, que faz exatamente três anos no mês em que esta obra se inicia. Saiba que seu nascimento foi um marco para as mudanças mais signifi cativas de minha vida.

Jasper.indd IIIJasper.indd III 8/11/2007 22:26:388/11/2007 22:26:38

Page 4: Dominando Relatorios JasperReports com iReport

Jasper.indd IVJasper.indd IV 8/11/2007 22:26:388/11/2007 22:26:38

Page 5: Dominando Relatorios JasperReports com iReport

Agradecimentos

Primeiramente quero agradecer a minha família, pelo apoio e compre-ensão da minha ausência que, de certa forma, se tornou uma rotina.

Agradeço o apoio da Editora Ciência Moderna, em especial ao editor Paulo André P. Marques, pelo incentivo e crédito em mais este livro.

Um agradecimento especial ao JUG Leader e Founding Java Cham-pion, Daniel deOliveira, pelo apoio que uma comunidade de grande peso como o DFJUG tem sobre meu trabalho.

Jasper.indd VJasper.indd V 8/11/2007 22:26:388/11/2007 22:26:38

Page 6: Dominando Relatorios JasperReports com iReport

Jasper.indd VIJasper.indd VI 8/11/2007 22:26:388/11/2007 22:26:38

Page 7: Dominando Relatorios JasperReports com iReport

Introdução

DESENVOLVER APLICAÇÕES COM O USO DE RELATÓRIOS é uma rotina co-mum para um desenvolvedor. Ao longo de anos, diversos softwa-res de relatórios surgiram. O sucesso de cada um dependia da inte-

gração com uma determinada plataforma (leia-se linguagem) que estivesse no auge no momento.

Em Java, a situação é um pouco diferente. Com uma linguagem onde os desenvolvedores se acostumaram com a cultura Open Source (embora Java não fosse até bem pouco tempo), poucas ferramentas de relatórios se destacavam neste cenário. Bem poucas também detinham as característi-cas profi ssionais dos melhores programas para a geração de relatórios. O tempo passou e este cenário mudou. Em 2001, nasceu o JasperReports, criado por Teodor Danciu, quando teve a tarefa de avaliar ferramentas de relatórios para um projeto que estava trabalhando. As soluções existentes eram muito caras para o orçamento do projeto e, em uma situação comum do mundo do desenvolvimento, ele decidiu escrever sua própria ferramen-ta de relatórios, que ao liberá-la para a comunidade, fi cou imensamente popular em pouco tempo.

JasperReports é uma biblioteca escrita em Java, de código fonte open source, projetada para ajudar o desenvolvedor com a tarefa de criar relató-rios para aplicações, tanto Desktop como Web, fornecendo uma API que facilita sua geração. Embora seja simples, ainda exige que o desenvol-vedor conheça seu formato XML utilizado para criar os relatórios, o que torna dispendioso o tempo de um iniciante.

Jasper.indd VIIJasper.indd VII 8/11/2007 22:26:388/11/2007 22:26:38

Page 8: Dominando Relatorios JasperReports com iReport

VIII DOMINANDO RELATÓRIOS JASPERREPORTS COM IREPORT

Mas este cenário começou a mudar em 09 de outubro de 2002, quando Giulio Toffoli lançou, de forma independente, uma ferramenta para gerar relatórios visuais, chamando-a de iReport. Sua característica era de desen-volver relatórios gerando o formato XML no padrão JasperReports.

Em 2005, com a popularidade do iReport, a JasperSoft (mantenedora do JasperReports) tornou esta ferramenta ofi cial na construção de relató-rios para o JasperReports.

Com cinco anos de existência, o iReport juntamente com o JasperRe-ports chega a sua segunda versão, demonstrando não somente amadureci-mento, mas reconhecimento e respeito de desenvolvedores que trabalham com a linguagem Java como uma ferramenta profi ssional para o desenvol-vimento de relatórios.

Este livro é mais que uma orientação, é um guia que o ensinará a utilizar o iReport para construir relatórios JasperReports, criando desde os mais sim-ples relatório até os mais sofi sticados, utilizando desde uma linguagem SQL até as mais sofi sticadas linguagens orientadas a objetos como HQL do Hiber-nate e EJB QL (Enterprise JavaBeans Query Language), passando por sub-relatórios, relatórios com gráfi cos, crosstab, passagem de parâmetros e etc. Além do iReport e JasperReports, o leitor aprenderá a chamar seus relatórios através de aplicações desktop e Web, utilizando exportações para formatos conhecidos como PDF. Em pouco tempo, você estará dominando a criação de relatórios JasperReports utilizando o iReport.

Quem Deve Ler Este Livro?

Este livro foi escrito para desenvolvedores com experiência na linguagem Java, que possuem pouca ou nenhuma familiaridade com a construção de relatórios, seja em JasperReports com iReport ou com outra ferramenta qualquer neste sentido.

Embora seja necessária experiência em Java, existem pessoas que apenas desejam construir relatórios para impressão, com saída para PDF, por exemplo, sem a utilização voltada para o desenvolvimento de aplica-tivos – no sentido do uso de BI (Business Intelligence). Pensando nestas pessoas, o livro aborda sobre instalações do JDK e do iReport mostrando alguns detalhes, além de simplifi car o desenvolvimento com as caracte-

Jasper.indd VIIIJasper.indd VIII 8/11/2007 22:26:388/11/2007 22:26:38

Page 9: Dominando Relatorios JasperReports com iReport

INTRODUÇÃO IX

rísticas do Groovy (linguagem de script ofi cial do Java). Entretanto, para estas pessoas, é importante dizer que este livro de forma alguma ensinará ou explicará códigos básicos da linguagem Java.

É também desejável que o leitor esteja bem familiarizado com o de-senvolvimento desktop Java Swing como em Web com Servlets e JSP, para melhor compreensão da integração dos relatórios com seus aplicativos. O conhecimento de frameworks Java ORM, como o Hibernate e TopLink, é importante para um melhor aproveitamento dos exemplos.

Antes de Começar

Em algumas partes deste livro, você encontrará apenas o trecho do código pro-duzido, focado no assunto em questão, possuindo uma simbologia indicativa de que o restante não está sendo mostrado. Este símbolo é mostrado a seguir:

... Indica que acima ou abaixo contém mais código, mas que não está sendo exibido, sendo necessário recorrer ao CD-ROM anexo para visuali-zá-lo na íntegra.

Os Softwares Requeridos

Os aplicativos criados nesse livro não exigem software proprietário. Por-tanto ao longo dos capítulos você não só aprenderá a usá-los, como tam-bém onde encontrá-los na Internet, caso precise de uma atualização.

Esse livro não está focado especialmente em um sistema operacional, portanto a sua escolha é livre neste sentido.

Hardware Requerido

Uma boa confi guração de hardware se faz necessário para trabalhar com aplicações escritas em Java. Um computador para rodar bem o iReport deve ter as seguintes confi gurações para uma confortável utilização, se-gundo o autor:

Processador: Pentium 3 (similar) ou superiorMemória: 256 MB de RAM mínimo (recomendo 512 GB de RAM)

Jasper.indd IXJasper.indd IX 8/11/2007 22:26:388/11/2007 22:26:38

Page 10: Dominando Relatorios JasperReports com iReport

X DOMINANDO RELATÓRIOS JASPERREPORTS COM IREPORT

HD: 20GB de espaço livre no discoMonitor: 17 polegadas

Os demais programas apresentados ao longo do livro, como o Eclipse e o NetBeans, seguem um padrão estabelecido por seus mantenedores.

Códigos dos Exemplos Criados no Livro

Todos os códigos dos exemplos criados, bem como o iReport e os módulos descritos ao longo do livro, se encontram no CD-ROM anexo. Caso não encontre algum exemplo, entre em contato com o autor pelo site http://www.integrator.com.br ou diretamente pelo e-mail [email protected].

Sobre o Idioma Utilizado no Livro

Embora haja a tradução do iReport no nosso idioma, este livro será ba-seado no idioma inglês. A razão para isso é o fato da ferramenta iReport ser mais usada no idioma inglês para desenvolvimento. A tradução é mais focada para pessoas e empresas que não o utilizam como ferramenta de desenvolvimento de relatórios para aplicativos (setores administrativos, por exemplo).

Uma exceção ocorre somente no segundo capítulo, onde será todo demonstrado em português do Brasil.

Visão Geral dos Capítulos

Embora este livro esteja completamente focado na utilização do iReport, ainda assim você terá ao longo do livro, alguns códigos para desenvolver. Em grande parte, o código está sendo mostrado em parte, para que você entenda como utilizar em seus aplicativos. Os exemplos completos estão no CD-ROM anexo ao livro, que possui a separação por capítulo, para melhor orientação.

O livro é completamente ilustrado, possuindo mais de trezentas fi -guras espalhadas ao longo de todos os seus capítulos, incluindo sempre

Jasper.indd XJasper.indd X 8/11/2007 22:26:388/11/2007 22:26:38

Page 11: Dominando Relatorios JasperReports com iReport

INTRODUÇÃO XI

o foco em detalhes, para que você não se perca. Dicas também são dadas para que o leitor possa ter uma melhor compreensão do que está sendo desenvolvido, incluindo os passos para executar cada exemplo.

A seguir, você tem uma sinopse de cada um dos quatorze capítulos do livro, incluindo também o apêndice:

CAPÍTULO 1: Conhecendo o iReport

O iReport é um programa Open Source, capaz de criar visualmente os mais complexos relatórios para aplicações Java no formato da biblioteca Jas-perReports. Como é escrito em 100% Java, signifi ca que também é multi-plataforma. Além disso, seus códigos fontes são distribuídos gratuitamente de acordo com a GNU (General Public License).

Através de uma interface gráfi ca intuitiva, o desenvolvedor é capaz de criar qualquer tipo de relatório de forma simples e rápida. Mesmo sa-bendo que o iReport desenvolve um formato XML usado pelo JasperRe-ports, o que não é difícil de manipular, há uma vantagem em usar esta ferramenta. Se o desenvolvedor é um usuário iniciante no formato XML do JasperReports, o iReport supre suas necessidades evitando que seja necessário fazer modifi cações no código fonte. Caso seja experiente nes-te formato, o iReport minimiza o tempo na criação dos mais complexos relatórios.

Neste capítulo você aprenderá onde obter, os requerimentos necessá-rios para executar, como instalar, compilar e entender sobre algumas das mais importantes características do iReport.

CAPÍTULO 2: Iniciando no iReport

O iReport é uma ferramenta que está preparada para construir visualmente os mais complexos relatórios dentro dos limites de JasperReports.

Embora o primordial de iReport seja de desenhar relatórios, existem também suas características para confi gurações.

Este capítulo o introduzirá ao desenvolvimento básico de relatórios usando o iReport, partindo de sua execução inicial e suas confi gurações básicas.

Jasper.indd XIJasper.indd XI 8/11/2007 22:26:398/11/2007 22:26:39

Page 12: Dominando Relatorios JasperReports com iReport

XII DOMINANDO RELATÓRIOS JASPERREPORTS COM IREPORT

CAPÍTULO 3: Estrutura de um relatório e seu desenvolvimento

Um relatório é uma maneira agradável de apresentar os dados vindos de alguma base de informação com sua aparência formatada. Na maioria das vezes, relatórios são usados para agrupar as informações vindas de um grupo de dados, relacionados entre si, oriundos de diversas tabelas. Como resultado você tem apenas os campos determinados na construção do seu relatório e exposto como tal de forma a simplifi car a compreensão das in-formações. Vindo em um formato padronizado para impressão, como um texto feito em um editor de textos, você só precisa mandar para a impres-são ou exportá-los para outro formato de uso maior.

Neste capítulo você irá conhecer a estrutura de um relatório JasperRe-ports na ferramenta iReport e suas propriedades.

CAPÍTULO 4: Criando um relatório sem o uso de assistentes

Para uma maior compreensão dos diversos elementos que compõem um re-latório no JasperReports, através do iReport, é importante a um desenvolve-dor aprender a desenhá-lo manualmente, isto é, sem o uso de assistentes.

Neste capítulo você irá aprender a criar um relatório manualmente, adicionando diversos elementos, confi gurando-os e trabalhando com ban-co de dados.

CAPÍTULO 5: Gerando relatórios com grupos, parâmetros e executando por uma aplicação desktop

Os relatórios mais utilizados em aplicações, sejam desktop ou Web, é com toda certeza, os dinâmicos. Aqueles relatórios que transmitimos uma de-terminada informação e este nos trazem aqueles determinados dados.

Poucas vezes também criamos relatórios com somente uma tabela. Isso se deve ao fato de que toda aplicação possui sempre diversas entida-des relacionais e de que os dados sempre estão espalhados por entre estas entidades.

Neste capítulo você aprenderá a criar um relatório mais complexo, através de mais de uma entidade (tabela) no desenvolvimento, agrupan-

Jasper.indd XIIJasper.indd XII 8/11/2007 22:26:398/11/2007 22:26:39

Page 13: Dominando Relatorios JasperReports com iReport

INTRODUÇÃO XIII

do informações e fi ltrando-as através de parâmetros. Por fi m, aprenderá a chamar este relatório utilizando uma aplicação Desktop, utilizando o Net-Beans IDE 6.0 ou o Eclipse IDE 3.3.

CAPÍTULO 6: Sub-relatórios

Os sub-relatórios são relatórios dentro de outros, também conhecidos como relatórios do tipo “mestre-detalhe”.

A idéia básica para a criação de um relatório mestre-detalhe é ter duas entidades relacionadas, onde a primeira possui um cadastro principal da qual a outra depende e originam-se diversos outros cadastros.

Estes relatórios, embora possam parecer complexos, são simples de desenvolver em JasperReports, principalmente se utilizada à ferramenta iReport.

Neste capítulo você aprenderá a criar sub-relatórios em seu relatório usando o iReport e acesso a dados, conhecerá a band noData na prática e depois o chamará através de uma aplicação Web com JSP e Servlets.

CAPÍTULO 7: Relatórios com Hibernate

Criar relatórios com o uso do Hibernate como camada de acesso a banco de dados é um caso comum no desenvolvimento de aplicações Web.

O Hibernate é hoje o mais popular projeto de gerenciamento de dados persistentes em Java e também o que possui uma gama de soluções para problemas comuns.

Neste capítulo você aprenderá a desenvolver seus relatórios utilizan-do o Hibernate para acessar os dados, incluindo um exemplo com sub-re-latório.

CAPÍTULO 8: Relatórios usando EJB QL

O uso de Java Persistence API se tornou muito intenso no último ano, e como não poderia deixar de ser, o JasperReports possui suporte a esta especifi cação através de EJB QL. Esta linguagem de queries possui uma semelhança à HQL do Hibernate e também a tradicional instrução SQL.

Jasper.indd XIIIJasper.indd XIII 8/11/2007 22:26:398/11/2007 22:26:39

Page 14: Dominando Relatorios JasperReports com iReport

XIV DOMINANDO RELATÓRIOS JASPERREPORTS COM IREPORT

Com a especifi cação do EJB3, na introdução da JPA, Java Persis-tence API, fi cou muito popular o uso de JPQL, Java Persistence Query Language, que é uma é uma extensão da EJB QL (Enterprise JavaBeans Query Language).

Neste capítulo você vai aprender a confi gurar um arquivo de persis-tência e criar um relatório com sub-relatório utilizando a EJB QL.

CAPÍTULO 9: Gerando relatórios com outras fontes de dados

O JasperReports é rico no desenvolvimento de relatórios e fornece ao de-senvolvedor uma gama de outras fontes de dados acessíveis para que o mesmo possa criar relatórios.

Diversos sistemas costumam exportar dados em diversos tipos, sendo os mais comuns o formato CSV e XML.

Este capítulo tratará de outras formas de acesso que não utilizam um banco de dados diretamente.

CAPÍTULO 10: Simplifi cando relatórios com Groovy

Groovy é uma linguagem dinâmica escrita para a plataforma Java, inspi-rada em linguagens como Ruby, Python e Smalltalk. Embora seja simples de se manipular e muito similar a linguagens de scripting, Groovy é uma linguagem um pouco mais complexa. Aplicações com Groovy podem ser pré-compiladas em bytecodes Java, para ser integrada à suas aplicações Java.

Graças a um Java Specifi cation Request (JSR-241), Groovy se tornou a segunda linguagem ofi cial padrão do Java Virtual Machine (JVM), de-pois de Java.

Desde a versão 0.6.6 do JasperReports, há suporte a linguagem Groo-vy. Com isso, quem ganha é o desenvolvedor, que tem em suas mãos uma maior simplicidade no desenvolvimento de expressões em seus relatórios. Por outro lado, há também uma aproximação de não-desenvolvedores, onde a utilização do iReport como ferramenta de relatórios passa a ser mais amigável em BI (Business Intelligence).

Jasper.indd XIVJasper.indd XIV 8/11/2007 22:26:398/11/2007 22:26:39

Page 15: Dominando Relatorios JasperReports com iReport

INTRODUÇÃO XV

Neste capítulo você vai construir um relatório utilizando Groovy, tra-balhando com expressões e aprenderá como rodar o relatório criado em suas aplicações também usando Groovy.

CAPÍTULO 11: Criando gráfi cos e subdataset em seus relatórios

Como todo bom relatório, não poderia faltar os gráfi cos. Simples e efi ca-zes, os gráfi cos exibem uma situação visualmente impactante, possibili-tando um entendimento muito maior, e mais rico, do que apenas números e textos.

O JasperReports possui um suporte a vários formatos de gráfi cos, fa-cilitando o desenvolvimento do relatório.

Neste capítulo será apresentado como criar gráfi cos em um relatório JasperReports usando o iReport, além de aprender a trabalhar com consul-tas diferentes no mesmo relatório, o que chamamos de Subdataset.

CAPÍTULO 12: Internacionalizando relatórios e imagens de fundo

Internacionalizar aplicações atualmente é uma situação muito comum en-tre os desenvolvedores. Não seria diferente no caso do desenvolvimento de relatórios. O JasperReports introduziu esta característica a partir da versão 0.6.2 e desde então seu suporte foi acrescentado ao iReport, facilitando mais ainda seu desenvolvimento.

Este capítulo ensinará você a internacionalizar e também a adicionar imagens de fundo em seus relatórios.

CAPÍTULO 13: Crosstabs

Crosstabs (cross-tabulation), no JasperReports, são tabelas cruzadas, mui-to comuns no desenvolvimento de relatórios com a utilização de planilhas eletrônicas, também conhecidas por tabelas dinâmicas ou tabelas de refe-rência cruzada.

Graças ao uso do iReport, você pode contar com o uso de um assisten-te, tornando esta tarefa não muito complicada.

Jasper.indd XVJasper.indd XV 8/11/2007 22:26:398/11/2007 22:26:39

Page 16: Dominando Relatorios JasperReports com iReport

XVI DOMINANDO RELATÓRIOS JASPERREPORTS COM IREPORT

Neste capítulo você aprenderá a criar crosstabs no iReport, modifi car, formatar e usar também subdatasets para relatórios mais complexos.

CAPÍTULO 14: Outras características da geração de relatórios

Neste capítulo você conhecerá algumas outras características da ferramen-ta iReport, que não foram apresentadas até o momento, como tradução do programa, compilação de relatórios grandes, formatação tanto com estilos próprios do JasperReports como em HTML, além da resolução de proble-mas comuns na construção de relatórios.

APÊNDICE A: Exportando para outros formatos

Este apêndice é uma referência sobre a API do JasperReports na exporta-ção para outros formatos através de sua aplicação, seja desktop ou Web.

Os formatos discutidos aqui são os mais utilizados para exportação pelo JasperReports: RTF, XLS, CSV, HTML e ODF.

NO CD-ROM: Apêndices B, C, D e E

No CD-ROM anexo, além dos arquivos e programas referentes aos exem-plos contidos no livro, há também os seguintes apêndices:

Apêndice B – O MySQLApêndice C – Contexto de desenvolvimento Web em JavaApêndice D – Trabalhando com Datas em JavaApêndice E – O Tomcat

Jasper.indd XVIJasper.indd XVI 8/11/2007 22:26:398/11/2007 22:26:39

Page 17: Dominando Relatorios JasperReports com iReport

Sumário

1 CONHECENDO O IREPORT .................................................................. 1Antes de utilizar o iReport ............................................................ 1

Obtendo e Instalando o Java SE ................................................ 2A Instalação no Windows ........................................................ 3

Em Windows Versão 9x .............................................................. 4A Instalação no Linux ............................................................. 4

Obtendo e Instalando o iReport ................................................. 5Algumas Características do iReport .......................................... 6Instalando o iReport ................................................................... 7

No Windows com instalador ................................................... 7No Windows e Linux sem instalador ...................................... 11

Compilando o iReport com a Ferramenta Ant ........................... 12Instalando e confi gurando o Ant ............................................. 13Em Windows ........................................................................... 13Em Linux ................................................................................. 13

Compilando o iReport ................................................................ 13

2 INICIANDO NO IREPORT ..................................................................... 15Abrindo o iReport pela Primeira Vez ............................................ 15

Documentos Recentes não são Exibidos .................................... 16Criando seu Primeiro Relatório com iReport ................................ 17

O Banco de Dados Usado .......................................................... 17

Jasper.indd XVIIJasper.indd XVII 8/11/2007 22:26:398/11/2007 22:26:39

Page 18: Dominando Relatorios JasperReports com iReport

XVIII DOMINANDO RELATÓRIOS JASPERREPORTS COM IREPORT

Antes de Criar o Primeiro Relatório .......................................... 18O Primeiro Relatório ................................................................. 18Visualizando o Primeiro Relatório ............................................. 25

Confi gurando o iReport ................................................................. 26Visualizando o Relatório Compilado em Outro Aplicativo .......... 30

3 ESTRUTURA DE UM RELATÓRIO E SEU DESENVOLVIMENTO ................... 33A Estrutura do Relatório ............................................................... 33

Title ............................................................................................. 35Page Header .............................................................................. 35Column Header .......................................................................... 36Detail .......................................................................................... 36Column Footer ........................................................................... 37Page Footer ................................................................................ 37Last Page Footer ........................................................................ 38Summary ..................................................................................... 38Background ................................................................................ 39noData ........................................................................................ 39

Compreendendo as Propriedades de um Relatório ....................... 40Iniciando com um Relatório em Branco .................................... 40

A Guia Margem da Página ...................................................... 42A Guia Columns ...................................................................... 42A Guia Scriptlet Class ............................................................. 45A Guia More... ......................................................................... 45

Title On a New Page ........................................................... 46Summary On a New Page .................................................... 47Floating Column Footer ...................................................... 47Ignore Pagination ............................................................... 47Print Order ........................................................................... 47When No Data ..................................................................... 48

A Guia i18n ............................................................................. 48Format Factory Class .......................................................... 49Resource Bundle Base Name ................................................ 49When Resource Missing Type ............................................... 49XML Encoding...................................................................... 50

Jasper.indd XVIIIJasper.indd XVIII 8/11/2007 22:26:398/11/2007 22:26:39

Page 19: Dominando Relatorios JasperReports com iReport

SUMÁRIO XIX

A Geração do JRXML ............................................................. 50Visualização do arquivo JRXML pelo iReport ........................... 52

4 CRIANDO UM RELATÓRIO SEM O USO DE ASSISTENTES ......................... 53Iniciando um Relatório Manualmente ........................................... 53

Exibindo o Grid para Desenho de Relatórios ............................ 54As Barras de Ferramentas do iReport ....................................... 55Adicionando uma Conexão a um Relatório em Branco ............. 56Criando a Query do Relatório ................................................... 59Os Elementos da Query Registrados no JasperReports ............ 64Desenhando o Relatório ............................................................. 65

Confi gurando as Bands ........................................................... 66Conhecendo a Barra de Ferramentas Text Formatting ............ 67Adicionando os Textos Estáticos ............................................. 69

Os Símbolos para Exibir o Formato de Números ...................... 77Conhecendo Melhor o Text Field ............................................... 78Criando o Efeito Zebra em Seu Relatório .................................. 78

Adicionando o Estilo ao Frame ............................................... 81Estilos no iReport ....................................................................... 82

Criando Estilos para Utilizar em Outros Relatórios ................ 83Exibindo Imagens em Seu Relatório .......................................... 84Um Pouco Mais sobre o Elemento Image ................................. 86Adicionando Links em Elementos .............................................. 89

Parâmetros de Hyperlinks ....................................................... 91Âncoras e Links no Arquivo JasperReports ............................ 91

Contando Registros e Exibindo na Band Summary ................... 92Mensagens em Relatórios JasperReports ................................ 93

5 GERANDO RELATÓRIOS COM GRUPOS, PARÂMETROS E EXECUTANDO POR UMA APLICAÇÃO DESKTOP ................................................................ 95O relatório que Será Desenvolvido ............................................... 95

Gerando o Relatório .................................................................. 96Criando a Query do Relatório ................................................... 97Criando o Grupo ........................................................................ 99

Uma Alternativa para Criar um Grupo .................................... 101

Jasper.indd XIXJasper.indd XIX 8/11/2007 22:26:408/11/2007 22:26:40

Page 20: Dominando Relatorios JasperReports com iReport

XX DOMINANDO RELATÓRIOS JASPERREPORTS COM IREPORT

No Arquivo JasperReports ......................................................... 102Adicionando os Elementos na Band PedidoGroupHeader ........ 103Criando Variáveis com Cálculos no iReport ............................. 105

Quantidade X Preço da Venda ................................................. 105Adicionando os Elementos na Band Detail ................................ 109Totalizando por Pedido ............................................................. 110Finalizando a Aparência do Relatório ....................................... 111Adicionando Parâmetros ao Relatório ..................................... 112Chamando o Relatório por uma Aplicação Desktop ................ 116

Confi gurando o NetBeans IDE 6.0 para Executarseu Relatório............................................................................ 117Confi gurando o Eclipse IDE 3.3 para Executar seu Relatório 119O Código para Executar o Relatório ....................................... 121Criando o projeto no NetBeans IDE 6.0 para executaro relatório ................................................................................ 124Criando o Projeto no Eclipse IDE 3.3 para Executaro Relatório ............................................................................... 127

6 SUB-RELATÓRIOS .............................................................................. 135O Relatório Mestre-detalhe que Será Desenvolvido ..................... 135

Criando e Confi gurando o Relatório Principal ......................... 136Gerando a Query ....................................................................... 137Defi nindo a Posição dos Campos .............................................. 138O Formato para a Exibição do Número de Páginas ................. 139Adicionando Conteúdo a Band noData ..................................... 140Gerando o Sub-relatório ............................................................ 140Confi gurando a Aparência do Sub-relatório ............................. 142Modifi cando a Query do Sub-relatório ...................................... 144Adicionando o Sub-relatório ao Relatório ................................. 144No Arquivo JasperReports ......................................................... 147Alterando as Propriedades do Sub-relatório ............................. 149Retornando Valores do Sub-relatório ......................................... 151

No Relatório Mestre ................................................................ 151No Sub-relatório ...................................................................... 154

Chamando o Relatório por uma Aplicação Web ....................... 156

Jasper.indd XXJasper.indd XX 8/11/2007 22:26:408/11/2007 22:26:40

Page 21: Dominando Relatorios JasperReports com iReport

SUMÁRIO XXI

A Estrutura de sua Aplicação Web .......................................... 156O Servlet que Executará o Relatório ....................................... 156A Página que Chamará o Servlet ............................................. 161Criando o Projeto Web no NetBeans IDE 6.0 ......................... 161Criando o Projeto Web no Eclipse IDE 3.3 ............................ 164

Criando Marcadores para o Relatório em PDF ........................ 179

7 RELATÓRIOS COM HIBERNATE ............................................................ 181O Hibernate ................................................................................... 181

Confi gurando o Hibernate ......................................................... 182Criando as Entidades ................................................................. 183Mapeando as Tabelas ................................................................. 185Confi gurando o Hibernate ......................................................... 188Sobre Hibernate Annotations no iReport ................................... 192Confi gurando o Hibernate no iReport ....................................... 192Criando a Conexão com o Hibernate no iReport ...................... 194Meu Hibernate não Funciona com o iReport ............................ 195Desenvolvendo o Relatório ........................................................ 196

Gerando a Query HQL ............................................................ 196O Design do Relatório ............................................................... 197Criando um Relatório com Sub-relatório Usando Hibernate .... 198

Gerando a Query HQL e Criando o Design do Relatório ....... 198Criando o Sub-relatório ............................................................. 199

Finalizando a Confi guração do Relatório Mestre.................... 203A Aplicação Usando o Hibernate............................................... 206Rodando o Relatório em uma Aplicação Usando o Hibernate .. 207Relatório Usando o Hibernate Através do Spring ..................... 207

8 RELATÓRIOS USANDO EJB QL ......................................................... 209O Conceito da API de Persistência ............................................... 209

Sobre Java Annotations .............................................................. 210Criando as Entidades ................................................................. 211

A Entidade Categoria .............................................................. 211A Entidade Produto ................................................................. 212

Confi gurando o Arquivo de Persistência ................................... 214

Jasper.indd XXIJasper.indd XXI 8/11/2007 22:26:408/11/2007 22:26:40

Page 22: Dominando Relatorios JasperReports com iReport

XXII DOMINANDO RELATÓRIOS JASPERREPORTS COM IREPORT

Confi gurando no iReport ......................................................... 216Baixando e Confi gurando o TopLink ......................................... 217

Baixando ................................................................................. 217Instalando e Confi gurando no iReport .................................... 217

Criando a Conexão EJBQL no iReport ..................................... 218Desenvolvendo o Relatório ........................................................ 219

Gerando a Query EJBQL do Relatório Mestre ....................... 219A composição fi nal do relatório mestre ................................... 221

O Sub-relatório .......................................................................... 221Criando o Parâmetro para o Número da Categoria .................. 221Gerando a Query EJBQL do Sub-relatório ............................... 221

O Design Final do Sub-relatório ............................................. 222Adicionando o Sub-relatório ao Relatório Mestre ..................... 223Adicionando o Parâmetro Especial para Manter a Sessão ....... 225Selecionando Apenas Alguns Objetos com EJB QL................... 227Rodando o Relatório em uma Aplicação Usando o EJB QL ..... 228

9 GERANDO RELATÓRIOS COM OUTRAS FONTES DE DADOS .................... 229Usando XML para Criar relatórios ............................................... 229

Criando um Relatório com XML ................................................ 230Criando a Consulta do Relatório ............................................. 232Criando o Design do Relatório ................................................ 234Executando o Relatório em sua Aplicação .............................. 235

Relatórios com XML Remoto ..................................................... 236Usando CSV para Criar Relatórios ........................................... 237

Criando a Conexão com o Arquivo CSV ................................ 237Registrando os Campos de um Arquivo CSV ............................. 239

Rodando o Relatório em sua Aplicação .................................. 240Relatórios sem Fonte de Dados ................................................. 241

Como Executar o Relatório em sua Aplicação ........................ 242Relatórios Usando JavaBeans como Fonte de Dados ............... 243

Confi gurando o JavaBeans no Classpath ................................ 244Criando a conexão com JavaBeans ......................................... 244Registrando os Campos para o Relatório ................................ 245Montando o Relatório ............................................................. 246

Jasper.indd XXIIJasper.indd XXII 8/11/2007 22:26:408/11/2007 22:26:40

Page 23: Dominando Relatorios JasperReports com iReport

SUMÁRIO XXIII

Executando o Relatório em sua Aplicação .............................. 247Relatórios Usando uma Fonte de Dados Personalizada ........... 247

Criando um Exemplo Simples ................................................ 248Confi gurando no Classpath ..................................................... 251Criando a Conexão para Custom JRDataSource ..................... 252Registrando os Campos para o Relatório ................................ 252Montando o Design do Relatório ............................................ 253Executando o Relatório em sua Aplicação .............................. 253

10 SIMPLIFICANDO RELATÓRIOS COM GROOVY ........................................ 255Criando um Relatório Usando Groovy ......................................... 256

Linguagem Groovy como Padrão ........................................... 256O Arquivo JasperReports Usando Groovy ................................ 257Iniciando o Desenvolvimento do Relatório ................................ 257

O Parâmetro ............................................................................ 258A Query que Será Usada no Relatório .................................... 258

O Design do Relatório ............................................................... 259Criando Linhas Alternadas para o Frame ................................ 260Criando uma Expressão com Groovy ..................................... 261Comparando Expressões e Campos com Groovy ................... 262

Resultado Final do Relatório com Groovy ................................ 263Chamando Seu Relatório com Groovy ....................................... 263Uma Aplicação Groovy que Chama o Relatório ...................... 263Criando Projetos Groovy no Eclipse e NetBeans ...................... 267

11 CRIANDO GRÁFICOS E SUBDATASETEM SEUS RELATÓRIOS .................... 269Criando um Gráfi co Simples ......................................................... 269

Criando a Query do Gráfi co ...................................................... 270O Design do Relatório ............................................................. 271Adicionando o Gráfi co ............................................................ 272A Sua Representação no Arquivo JRXML .............................. 274Confi gurando o Gráfi co ........................................................... 274

Links em Seu Gráfi co ................................................................. 277Subdatasets ................................................................................. 278

Adicionando Gráfi co em um Relatório com Sub-relatório ..... 278

Jasper.indd XXIIIJasper.indd XXIII 8/11/2007 22:26:408/11/2007 22:26:40

Page 24: Dominando Relatorios JasperReports com iReport

XXIV DOMINANDO RELATÓRIOS JASPERREPORTS COM IREPORT

Criando e Confi gurando um Subdataset ................................. 281Adicionando um Parâmetro no Subdataset .......................... 282Adicionando uma Query ao Subdataset ............................... 282

Utilizando Subdatasets em Seu Gráfi co ..................................... 282Utilizando Gráfi cos com Subdatasets em um Relatório com Hibernate ................................................................................... 285

A Instrução HQL e o Parâmetro .............................................. 285O Subdataset e a Instrução HQL ............................................. 286A Confi guração do Gráfi co...................................................... 286

12 INTERNACIONALIZANDO RELATÓRIOS E IMAGENS DE FUNDO ................. 287Criando seu Relatório Internacionalizado ..................................... 287

Como Utilizar um Arquivo Resource Já Criado ........................ 289Adicionando as Chaves e Valores do Arquivo ........................ 289Colocando a Internacionalização em Ação ............................. 291Testando Seu Relatório com a Internacionalização ............... 292

Adicionando Uma Imagem de Fundo ........................................ 294Executando Seu Relatório no Navegador .................................. 294

O Servlet.................................................................................. 296

13 CROSSTABS ...................................................................................... 299Criando seu Primeiro Relatório Crosstab ...................................... 299

Criando a Query ........................................................................ 300Adicionando o Crosstab em Seu Relatório ............................. 300

No JasperReports ....................................................................... 305Compreendendo a Disposição do Crosstab ............................... 306Modifi cando uma Célula no Crosstab ........................................ 306Adicionando Grupos de Linhas e Colunas ................................ 308Compreendendo as Measures .................................................... 313

Measures no JasperReports ..................................................... 314Criando um Crosstab com Subdataset ....................................... 315

Criando a Query Principal ....................................................... 316Adicionando o Text Field da Band Detail ............................... 316Criando o Subdataset............................................................... 317Criando o Crosstab .................................................................. 318Confi gurando o Crosstab ......................................................... 319

Jasper.indd XXIVJasper.indd XXIV 8/11/2007 22:26:418/11/2007 22:26:41

Page 25: Dominando Relatorios JasperReports com iReport

SUMÁRIO XXV

14 OUTRAS CARACTERÍSTICAS DA GERAÇÃO DE RELATÓRIOS ................... 321Tratando Relatórios Grandes ......................................................... 321

Exibindo Somente um Grupo por Página .................................. 324Reiniciando o Número de Páginas ............................................. 324Alinhamento de Objetos no Design do Relatório ....................... 325Formatação Entre Textos no Seu Relatório ............................... 326

Data Atual no Relatório ........................................................... 328Stored Procedures e Functions ................................................ 328

Erros na Compilação ................................................................. 329Como Visualizar Erros que não Aparecem ............................. 331

Cancelando a Compilação de Um Relatório ............................. 331A Tradução do iReport ............................................................... 332Exportando Sua Tradução ........................................................ 333Opções de Exportação para Outros Formatos .......................... 334

A EXPORTANDO PARA OUTROS FORMATOS ............................................. 337Exportando Para o Formato RTF .................................................. 337Exportando para o Formato Excel ................................................ 338Exportando para HTML ................................................................ 338Exportando para CSV ................................................................... 339Exportando para ODF ................................................................... 339

BIBLIOGRAFIA .................................................................................. 341Livros Nacionais ........................................................................... 341Livros Internacionais ..................................................................... 341Sites ............................................................................................... 342TopLink Essentials: ..................................................................... 342Acesso para Pesquisa .................................................................... 342

Groovy e iReport: ...................................................................... 342Plugin do Eclipse utilizado para desenvolver Groovy: ............. 342Usando a Java Persistence API em Aplicações Desktop:.......... 342

Tutoriais ........................................................................................ 342

Jasper.indd XXVJasper.indd XXV 8/11/2007 22:26:418/11/2007 22:26:41