You are on page 1of 41

JasperServer- iReport

Lucas Silva Cabral


Mariangela Soares Simedo
Sumário

• Introdução
• Instalação
• Configuração
• Estrutura
• Criando relatórios
– Query
– Layout
– Visualização
• Inserindo imagens
• Contando registros
• Grupos
• Parâmetros
• Sub-relatórios
• Chamando relatório no Symfony
• Exercício prático

2
O que é iReport ?

• É um programa capaz de criar visualmente os mais


complexos relatórios para aplicações Java no
formato da biblioteca JasperReports;

Mariangela Soares Simedo


3
Lucas Silva Cabral
JasperRports

• Framework open-source para geração de


relatórios;
• Escrito em Java, essa biblioteca apresenta grande
habilidade na organização e apresentação de
conteúdo, permitindo a geração dinâmica de
relatórios em diversos formatos, como PDF,
HTML, XLS, CSV e XML, podendo ainda ser
utilizada em qualquer aplicação Java, incluindo
aplicações desktop, Web e distribuídas.
Mariangela Soares Simedo
4
Lucas Silva Cabral
Instalação

• Executar o arquivo jasperserver-ce-3.7.0-windows-installer.exe ;


• Baixar o plugin do iReports para NetBeans (iReport-3.7.3-plugin);
• No NetBeans vá ao menu Ferramentas > Plug-ins
• Clique na aba Baixados e, em seguida clique em Adicionar Plug-
in;
• Localize a pasta com o plug-in, selecione os arquivos e clique em
Open;
• Siga os passos normais da instalação;
• Haverá um alerta do NetBeans sobre a não verificação do plug-
in, ignore-o e prossiga com a instalação.

Mariangela Soares Simedo


5
Lucas Silva Cabral
Instalação

Mariangela Soares Simedo


6
Lucas Silva Cabral
Configuração

• Tela inicial do iReports no NetBeans, siga os passos


para configuração

Mariangela Soares Simedo


7
Lucas Silva Cabral
Configuração

• Step 1: Configuração do banco de dados da locadora

Mariangela Soares Simedo


8
Lucas Silva Cabral
Estrutura de um relatório

• O iReport possui uma série de "bandas" que fazem o


relatório ser dinâmico ou não. Essas banda são
extremamente bem definidas, ou seja, cada banda
possui uma função especifica no relatório.
• O iR possibilita a criação de quantas bandas for
necessário, pois no conceito de relatório, cada banda
pode ser um agrupamento.

Mariangela Soares Simedo


9
Lucas Silva Cabral
Estrutura de um relatório

• As bandas básicas que o iReport possui são:


- title
- pageHeader
- columnHeader
- detail
- columnFooter
- pageFooter
- lastPageFooter
- summary

Mariangela Soares Simedo


10
Lucas Silva Cabral
Estrutura de um relatório

• Title
Banda onde o título do relatório deverá ser colocado. Por default ele aparece
apenas uma vez.
• pageReader
Banda onde as informações que são necessárias serem vistas no topo de
todas as páginas devem ser colocadas.
• columnHeader
Banda de agruapamento default do iReport, onde o cabeçalho de suas
colunas deverá ser criado.
• detail
É a única parte dinâmica do relatório, ou seja, ela processa as linha que
voltam de uma query. A grande maioria dos dados que uma query retornam
acabam ficando dentro do detail, com exceção de alguns dados.

Mariangela Soares Simedo


11
Lucas Silva Cabral
Estrutura de um relatório

• columnFooter
Onde os totais do agrupamento geralmente são colocados.
• pageFooter
Onde colocam-se os dados que deverão aparecer no rodapé
de todas as páginas.
• lastPageFooter
Onde colocam-se os dados que deverão aparecer no rodapé
da última página.
• summary
Banda onde coloca-se qualquer informação que não se
encaixa em nenhum dos contextos acima descritos
Mariangela Soares Simedo
12
Lucas Silva Cabral
Células de Utilização

• Existem 3 tipos de células para se trabalhar no


iReport, são elas:
• $F{} – Field
• $V{} - Variable
• $P{} - Parameter

Mariangela Soares Simedo


13
Lucas Silva Cabral
Células de Utilização

• Field: são as células que representam todos os dados que chegam do


banco de dados. Quando se executa uma query, todos os "selects"
voltam em forma de fields para serem trabalhados no relatório.

• Variables: são as variáveis existentes no relatório. Tem variáveis que


são default do iReport, como número de páginas e quantidade de
linhas, e também existem variáveis que podem ser criadas para
suprir necessidades específicas, como totalização de resultados,
soma, porcentagem e ironicamente, pode-se setar uma variável
como constante.

• Parameters: são os parâmetros passados ao relatório via query.

Mariangela Soares Simedo


14
Lucas Silva Cabral
Criando Relatório

Mariangela Soares Simedo


15
Lucas Silva Cabral
Inserindo a query no relatório

• É possível utilizar o Qurey Designer para construir a query ou ainda


montá-la manualmente em SQL:

Mariangela Soares Simedo


16
Lucas Silva Cabral
Montando layout do relatório

Mariangela Soares Simedo


17
Lucas Silva Cabral
Montando layout do relatório

Mariangela Soares Simedo


18
Lucas Silva Cabral
Pré-visualização do relatório

Mariangela Soares Simedo


19
Lucas Silva Cabral
Imagens no relatório

• Elemento image da Paleta;


• Definir Parâmetro com caminho do diretório de
imagens;
• Na caixa de diálogo Image Expression (Propriedades),
concatenar o parâmetro com o caminho do diretório
com o nome da imagem ou ainda o campo do banco
de dados com o nome da imagem;
• Definir o tamanho e posicionamento da imagem no
relatório.

Mariangela Soares Simedo


20
Lucas Silva Cabral
Imagens no relatório

Mariangela Soares Simedo


21
Lucas Silva Cabral
Imagens no relatório

• Scale Image :
– Clip : a dimensão da imagem não é alterada;
– Fill Frame : a imagem se adapta à dimensão do elemento,
incluindo deformidades (padrão);
– Retain Shape : a imagem se adapta ao elemento
mantendo as proporções idênticas, ocorrendo às vezes o
não preenchimento total determinado pela área do
elemento Image.

Mariangela Soares Simedo


22
Lucas Silva Cabral
Imagens no relatório

• Using Cache: mantém a imagem em memória para


usar novamente se o elemento for reimpresso. A
imagem só é mantida em cache se o campo
Expression Class for java.lang.String
• Is Lazy : ótima opção quando estamos carregando
uma imagem de uma URL. Faz com que a imagem
seja carregada quando o relatório for exportado.

Mariangela Soares Simedo


23
Lucas Silva Cabral
Imagens no relatório

• On error type:
– Error: gera uma exceção java, impedindo a renderização
do relatório. É o valor padrão;
– Blank: a imagem não é exibida, ficando em seu lugar um
espaço vazio;
– Icon: um ícone é impresso no lugar da imagem.

Mariangela Soares Simedo


24
Lucas Silva Cabral
Band Summary

• Apresenta as informações somente ao fim de todas


as páginas do relatório;
• Contando registros:
– Adicionar uma variável, indo à janela do Report Inspector,
no item Variables;
– Clique com o botão direito sobre o ícone Variables e em
seguida em Add Variable.

Mariangela Soares Simedo


25
Lucas Silva Cabral
Band Summary – Contando Registros

• Na janela Propriedades da variável criada:


– Digite Total em Name;
– Selecione o tipo de dados java.lang.Integer, em Variable Class;
– Altere para Count em Calculation (isso possibilitará a
contagem dos registros enquanto o relatório é gerado);
– Mantenha em Reset Type para Report. Isso fará com que a
variável só seja reiniciada ao fim do relatório;
– Em Variable Expression, acione a caixa de diálogo Variable
Expression. Selecione um campo e confirme;
– Arraste a variável total da janela Report Inspector para a band
Summary

Mariangela Soares Simedo


26
Lucas Silva Cabral
Criando Grupos

• Exemplo da Locadora : exibir os filmes por categoria


ou classificação;
• É necessário que a query possua uma ordenação:
“order by” ou “group by”;
• Na janela Report Inspector, no primeiro item da
árvore (nome do relatório), selecione Add Report
Group

Mariangela Soares Simedo


27
Lucas Silva Cabral
Criando Grupos

Mariangela Soares Simedo


28
Lucas Silva Cabral
Adicionando Parâmetros

• Parâmetro passado para a query do relatório;


• Usado para filtrar os registros a serem exibidos no
relatório;
• Exemplo locadora: exibir somente os filmes de
Aventura.
• Criar o parâmetro;
• Adicioná-lo à query.

Mariangela Soares Simedo


29
Lucas Silva Cabral
Adicionando Parâmetros

Mariangela Soares Simedo


30
Lucas Silva Cabral
Adicionando Parâmetros

• Adicionando parâmetro na query:


SELECT
nome AS cliente_nome,
cpf AS cliente_cpf,
telefone_fixo AS cliente_telefone_fixo,
telefone_celular AS cliente_telefone_celular,
endereco AS cliente_endereco
FROM
cliente
WHERE
cpf = $P{cpf}

Mariangela Soares Simedo


31
Lucas Silva Cabral
Sub-Relatórios

• São relatórios dentro de outros;


• Ideia básica: ter duas entidades relacionadas;
• Normalmente cada relatório possui uma query,
quando há necessidade de outra query para
recuperar dados, usa-se um sub-relatório;
• É possível passar campos do relatório pai para o sub-
relatório como parâmetro.

Mariangela Soares Simedo


32
Lucas Silva Cabral
Sub-Relatórios

• Cria-se um novo relatório;


• Nova query e layout;
• Adicionar o novo relatório como sub-relatório:
– Item da Paleta: Subreport
– Adicionar à banda (detail)
– Relacionar os parâmetros e diretórios do sub-relatório

Mariangela Soares Simedo


33
Lucas Silva Cabral
Sub-Relatórios

Mariangela Soares Simedo


34
Lucas Silva Cabral
Sub-Relatórios

Mariangela Soares Simedo


35
Lucas Silva Cabral
Sub-Relatórios

Mariangela Soares Simedo


36
Lucas Silva Cabral
Sub-Relatórios

Mariangela Soares Simedo


37
Lucas Silva Cabral
Sub-Relatórios

Mariangela Soares Simedo


38
Lucas Silva Cabral
Chamando o relatório pelo Symfony

Mariangela Soares Simedo


39
Lucas Silva Cabral
Exercício Prático

Mariangela Soares Simedo


40
Lucas Silva Cabral
Literatura e Bibliografia

• iReports Plugin para NetBeans


• Gerando relatórios no Netbeans usando JasperServer e iReports
• JasperServer Instalação

Mariangela Soares Simedo


41
Lucas Silva Cabral

You might also like