Título: Conhecendo o iReport
Autor: Daniel Vidal
Nível: Básico
---------------------------------------


Nesse artigo vou falar um pouco de como é o modelo de trabalho do iReport. Vou identificar também como são os dados que utilizamos no iReport.

1. 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

Field
Os Fields 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.

Todas essas células podem ser de diversos tipo de dados, são eles:
java.lang.String
java.lang.Object
java.lang.Boolean
java.lang.Byte
java.util.Date
java.sql.Timestamp
java.sql.Time
java.lang.Double
java.lang.Float
java.lang.Integer
java.io.InputStream
java.lang.Long
java.lang.Short
java.math.BigDecimal

Para variáveis e parâmetros temos também o tipo:
net.sf.jasperreports.engine.JREmptyDataSource

Caso queira saber um pouco mais sobre esses tipos de dados, clique aqui!


2. 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.

As bandas básicas que o iReport possui são:
- title
-
pageHeader
- columnHeader
-
detail
- columnFooter
- pageFooter
- lastPageFooter
- summary

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.

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


thumbsup.gif


Você gostou? Comente no fórum!

Comentários:

Thiago Ananias disse:

Beleza Daniel! Cara me esclarece uma coisa:

CODE
$F{} - Field
$V{} - Variable
$P{} - Parameter


Essas variaveis estão parecendo JSLT, é isso mesmo?

ps: Monta um relatório ae pra gente tongue.gif

NightSpy disse:

O pouco que manjo de iReport, sempre usei estas celulas parecido como uso Expression Languages em JSP..... principalmente as celulas FIELDS e PARAMETERS.... como JSTL engloba EL tb, fico na dúvida tb...hihihihih

Daniel Vidal disse:

Opa, desculpa a demora..
assobiando.gif

Então, são sim como JSTLs...
Tanto que vc pode tratá-los igual
ex: Suponha que tenho uma váriavel que conta as linhas..
Quero concatenar com uma string, faz assim...
CODE
new String(
   "Esta é a linha " + $V{CONTA_LINHA} + " do seu relatório e a próxima será a linha número " +  ($V{CONTA_LINHA} + 1)
)


O resultado será algo como:
Esta é a linha 1 do seu relatório e a próxima será a linha número 2

-------------------------------------------------------------------------------
É possivel fazer operações ternárias também:
CODE
new String(
    $F{S_OU_N}.equals("S") ? "SIM" : "NÃO"
)

Se o field for o caractere 'S', aparecerá SIM no relatório, se for o caractere 'N', aparecerá "NÃO"

thumbsup.gif

Thiago Ananias disse:

Entendi...então eles tem o mesmo estilo mas não são JSLT, e só parecido né!!

Ver o restante dos comentários no fórum (e aproveitar pra comentar também !).

Mais recentes em JSP e Java

Api's java
Por Daniel Vidal - Lista de api's...
Validador stella
Por Lucasbr - O caelum stella visa suprir as necessidades comumente...
Jsp - expression language
Por Daniel Vidal - Pra quem quiser conhecer um pouco mais sobre as els,...
[java] listeners
Por Daniel Vidal - Listeners - o java possui diversos tipos de listeners...
[swing] adicionando menu ao frame
Por Daniel Vidal - Passo 2...

Ver mais Artigos de JSP e Java.

Ver e retirar outras dúvidas no fórum Webly.

Alguns Direitos Reservados | RSS | O Fórum

Webly Portal e Fóruns - Internet + Humana | Design by ArthurHenrique.com