ireport Introdução Prof. Edwar Saliba Júnior Novembro de 2012 1
O que é o ireport? O ireport é um gerador de relatórios gratuito feito para a linguagem Java. Criado pela empresa Jaspersoft Corporation. Pode ser adquirido em: http://community.jaspersoft.com/ 2
Instalação Pode ser: plug-in para a IDE NetBeans ou instalado diretamente no sistema operacional (GNU/Linux / Windows). 3
Visual do Plug-in no NetBeans 4
Visual da Instalação no S.O GNU/Linux distribuição Ubuntu 12.04 5
Observação Para esta aula usaremos o plug-in da ferramenta ireport instalado na IDE NetBeans. 6
Criando um Relatório Para criarmos um relatório no ireport, a ferrmanta nos disponibiliza recursos gráficos que facilitam a criação, visualização e manutenção dos relatórios. Na aba de boas vindas do ireport, ele nos mostra os três passos necessários para a criação de um novo relatório. Se a aba de boas vindas não estiver visível, basta acessarmos o menu: Window Welcome to Jaspersoft ireport Designer. 7
Três Passos para Criação de um Relatório 8
Passo 1 É necessária a criação de uma conexão com um SGBD. Ou com uma outra fonte de dados, por exemplo: um arquivo XML. A conexão com o SGBD pode ser feita no próprio NetBeans, na aba Services, encontrada no menu, Window Services ou Simplesmente clicando no ícone de banco de dados mostrado no step 1 do ireport. 9
Passo 2 Tendo uma conexão com um SGBD, podemos passar ao passo 2, onde escolheremos como fazer o nosso relatório. Para tanto, há duas opçõe: wizard que nos auxilia na construção do relatório passo a passo ou a estrutura simples, onde você criará manualmente todos os campos que comporão seu relatório. 10
Utilizando o Wizard Ao clicarmos no Step 2 da aba de apresentação do ireport, nos será mostrada a tela à direita. Então escolha um tema e clique no botão Lauch Report Wizard. 11
Nome e Local O relatório deve ter um nome e ficar em uma pasta específica. 12
Conexão com o SGBD O relatório deve possuir uma conexão com a base de dados. Para definir uma, clique no botão New. Primeiramente, crie a conexão com o SGBD. 13
Criando a Conexão com o SGBD Escolha Databse JDBC connection e clique no botão Next. 14
Efetivando a Conexão com o SGBD Dê um nome a conexão. Entre com o usuário e senha do banco de dados. Escolha o driver JDBC. Coloque o nome do banco de dados na string de conexão. Clique no botão Test para verificar a conexão. 15
Query O relatório deve ter uma sentença SQL que filtre, no banco de dados, os dados que deverão ser impressos. Você pode escrever a sentença SQL aqui. Ou usar o recurso visual para construção de sentenças SQL. 16
Criando a Sentença SQL Se você preferir criar a sentença usando o recurso visual, então você verá a tela ao lado. 17
Selecionando o Local das Tabelas Utilize o ComboBox para indicar o local onde estão as tabelas no banco de dados. 18
Dê um clique duplo em uma das tabelas que aparecer e sua tela ficará com esta. Criando a Sentença SQL Dê um clique duplo no * e a A tabela e tela expression.edit apareseus camcerá. Então digite o nome dos pos são campos que deverão aparemostrados. cer no relatório. Uma sentença SQL é automaticamente construída com os campos da tabela selecionada. 19
Clique na cláusula where com o boão direito e selecione add condition. Então a tela condition.edit aparecerá. Cláusula Where Vamos selecionar todos os produtos com preço maior que R$2,00. Escreve-se o nome do campo: preco. Seleciona-se o operador relacional. E define-se o valor de comparação. 20
Pausa no tutorial! Com o pgadim do PostgreSQL, fizemos uma consulta no banco para verificar se haviam produtos cadastrados. 21
De volta ao tutorial! Nossa tela está assim! 22
Verificando a Sentença Criada Clicando na aba syntax podemos verificar como ficou a sentença SQL que acabamos de criar. Para finalizar, clique no botão Ok. 23
Próximo Passo Nossa tela está assim. A sentença está pronta. Então vamos ao próximo passo. 24
Campos Nesta tela podemos escolher os campos que serão exibidos no relatório, para isto basta utilizar os botões > ou.... 25
Agrupamento Pode-se agrupar os dados que serão exibidos, por um ou mais campos da sentença SQL. Neste exemplo este recurso não será utilizado. 26
E pronto! 27
A Primeira Visão do Relatório Temos que fazer algumas mudanças!!! 28
Alterando os Títulos do Relatório Muito simples! É só dar um clique duplo no componente e fazer a alteração. Feitas as alterações, vamos apertar o botão Preview e ver como ficou nosso relatório de produtos. 29
Primeira Visão do Relatório Perfeito! 30
Explicações O relatório funcionou bem! Dos cinco registros existentes no nosso banco de dados, só foram mostrados apenas 4, pois, a nossa sentença SQL filtrou somente os produtos que tivessem preço > 2. 31
Melhorias Poderíamos ter feito outros ajustes, por exempo: a largura dos campos. Poderíamos também, ter mudado a imagem da folha pelo logotipo do supermercado. Etc. 32
Situações Poderíamos ter escrito a seguinte sentença SQL da seguinte maneira: select codigo, nome from Produto where preco > 100 Esta sentença não nos retornaria nenhum registro, pois, o maior preço de produto cadastrado em nossa base de dados é 5.5. Numa situação como está, um Preview de nosso relatório nos retornaria a mensagem: 33
Criando Relatórios sem Wizard 34
Começando... Primeiramente, não se esqueça de executar os passos 1 e 2 já explicados neste tutorial. 35
Criando Manualmente Ao clicarmos no Step 2 da aba de apresentação do ireport, nos será mostrada a tela à direita. Então escolha um tema e clique no botão Open this Template. Para este tutorial, escolhemos este tema. 36
Visão do Tema Escolhido Mesmo escolhendo um tema totalmente branco, o ireport já coloca as devidas divisões no projeto de relatório para facilitar a construção deste. 37
Conhecendo o Relatório Como podemos ver no slide anterior, um relatório se divide em 7 partes: Título (Title), Cabeçalho de Página (Page Header), Cabeçalho de Coluna (Column Header), Detalhe (Detail 1), Rodapé de Coluna (Column Footer), Rodapé de Página (Page Footer) e Sumário (Summary). 38
Funcionamento de Cada Parte Título: só aparece na primeira página do relatório; é a primeira parte a ser impressa. Cabeçalho de Página: aparece em todas as páginas do relatório; na primeira página, vem logo após o título. Cabeçalho de Coluna: é impresso uma vez por conjunto de dados a serem impressos (dados que serão impresso no detalhe ) ou no caso de quebra de página; vem sempre depois do cabeçalho de página. 39
Funcionamento de Cada Parte Sumário: é a última parte do relatório a ser impressa; só aparece uma vez em cada relatório. 40
Como Construir Um Relatório Não tem segredo! O funcionamento semelhante ao de se construir uma tela, no NetBeans, usando componentes Swing. Drop and Down: você escolhe o componente na paleta de componentes do ireport e arrasta até o relatório. Depois é só alterar as propriedades do componente, na paleta de propriedades. 41
Importante! Antes de começar a construir seu relatório, sempre defina a base de dados e as sentenças SQL que filtrarão os dados que serão impressos. Isto facilitará sua vida na hora de construir o lay-out do relatório. 42
Cria conexão com Programação Visual Define a base de Paleta do ireport uma base de dados dados a que será que apresenta topré-existente. Paleta de utilizada no relatório. dos os componenarrastamos e Colamos, Relatório Construído! Mostra preview do componentes tes do relatório. relatório com dados. do ireport. Mostra xml do relatório. Compila o relatório. Saída de mensagens de compilação do ireport. Paleta de Propriedades dos componentes do ireport. 43
Exemplo 01 - Relatório Produtos Relatório de Produtos 44
Adicionando Relatórios ao Projeto de Software 45
Como Fazer? Vá até a pasta onde se encontram os arquivos do projeto. No NetBeans é a pasta src. Crie uma pasta com o nome de relatorios (a falta do acento é proposital, pois, caracteres especiais podem causar problemas quando há troca de sistemas operacionais.). Copie os arquivo do relatório para esta pasta. Este arquivo tem a extensão.jrxml. O ideal é que você já os crie nesta pasta, pois, assim evita-se o trabalho de ter que ficar trocando-os de lugar. 46
Meio Caminho Andado! Bem, se você criou a pasta relatorios dentro da pasta src do projeto, supõese que você já tenha um software que funcione e que só esteja faltando os relatórios. Correto? Então vamo lá! 47
Utilizando o Relatório Criado Para usarmos o relatório criado, devemos antes de mais nada, adicionar ao nosso projeto algumas bibliotecas do Jasper ireport. São elas: commons-beanutils-1.8.2.jar commons-collections-3.2.1.jar commons-digester-1.7.jar commons-logging-1.1.jar groovy-all-1.5.5.jar itext-2.1.7.jar jasperreports-3.7.4.jar poi-3.5-final-20090928.jar 48
Onde Encontrar as Bibliotecas? As bibliotecas vêm com a instalação do ireport, você as achará em:...\jaspersoft\ireport-3.7.4\ireport\modules\ext 49
Como Adicionar as Bibliotecas ao Projeto? No NetBeans, siga os passos: clique com o botão direito do mouse sobre o nome do projeto; no menu que aparecer, escolha a opção Propriedades. Será aberta a tela: 50
Como Adicionar as Bibliotecas ao Projeto? no campo Categorias, escolha Bibliotecas (Libraries); em seguida clique no botão Add Jar/Folder ; 51
Como Adicionar as Bibliotecas ao Projeto? na janela que se abrir, navegue até a pasta correta e selecione os arquivos (bibliotecas) relacionados alguns slides atrás. Pronto! Pode ser que você não precise de todas estas bibliotecas, mas, como elas são as mais comuns de serem utilizadas, é sempre bom tê-las adicionadas ao projeto. 52
Exemplo Para exemplificar a utlização do ireport, foi construído um software de cadastro de Produtos para o almoxarifado do IFTM. Este software possui duas telas, uma de visualização e outra de edição de dados. Utiliza banco de dados PostgresSQL. As demais explicaçõe serão dadas diretamente no código-fonte apresentado. 53
Cadastro de Produtos Estrutura do Projeto: 54
Banco de Dados Geração das Tabelas: Script para Geração da Tabela Utilizada no ProjetoRelatorio 55
Código-fonte Parte 01 - O Relatório Final Impresso Em Arquivo Parte 02 - Classe Principal Parte 03 - Classe Produto Parte 04 - Classe ConFactory Parte 05 - Classe DaoProduto Parte 06 - Classe NewTableModel Parte 07 - Classe GerenciaProdutos Parte 08 - Classe ManipulaRegistro Parte 08 - GUI da Classe ManipulaRegistro Parte 09 - Classe VisaoDeProdutos Parte 09 - GUI da Classe VisaoDeProdutos Parte 10 - GUI do Projeto do Relatório 56
Bibliografia JASPERSOFT COMMUNITY. ireport Designer. Disponível em: <http://community.jaspersoft.com/wiki/ireport designer-v470-download> Acesso em: 08 nov. 2012. MACEDO, Alexandrre. Relatórios em Java JasperReports e ireport. Disponível <http://www.k19.com.br/artigos /relatorios -em-java-jasperreports -e-irepor/> Aceso em: 20 nov. 2012. em: MARINHEIRO, Weillington. Gerando Relatórios com ireport e Java. Disponível em: <http://codigofonte.uol.com.br/artigo /java/gerando -relatorios -com-ireport -e-java/imprimir> Acesso em: 23 out. 2012. ORACLE. Interface TableModel. Disponível em: <http://docs.oracle.com/javase/1.4.2/docs /api/javax /swing/table /TableModel.html > Acesso em: 27 nov. 2012. SALIBA JÚNIOR. Edwar. Exmplo: Conexão do NetBeans com Postgre SQL!. Disponível em: <http://javafree.uol.com.br/artigo/877101/exemplo-conexao -do-netbeans -com-postgre -SQL.html > Acesso em: 15 nov. 2012. SIQUEIRA, Willian Antônio. Acessando Dados com Java: 1 a. Parte Simples Dao. Disponível em: <http://javafree.uol.com.br/artigo/874102/aplicativo-java-com-acesso-a-banco -de-dados -1%C2%BAparte-Dao.html> Acesso em: 20 nov. 2012. QUEIROZ, Misael Barreto. NetBeans 6.8 + ireports. Dispnível em: <http://www.guj.com.br/java/214122netbeans-68--ireports> Acesso em: 19 nov. 2012. YUZO, Erick. Exemplo de TableModel. Disponível em: <http ://www.guj.com.br/java/225793-exemplo -detablemodel> Acesso em: 27 nov. 2012. 57