Whats new? | Login | Parceiros
Cadastre-se | Atendimento | RSS
+ Java:
artigos   |   vídeos   |    cursos   |    mais

  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!



Artigo Java Magazine 21 - Relatórios Avançados

Artigo publicado pela Java Magazine edição 21.

FERNANDO LOZANO
é consultor independente, ativista do software livre e professor da Faculdade Metodista Bennett, além de autor do livro “Java em GNU/Linux” (Editora Alta Books). É detentor de certificações da Sun, IBM, Microsoft e Red Hat, sendo uma espécie de ...


Ver space do autor


Estatísticas:
Visualizações:
2252
Favoritado:
 4 vez(es)

Serviços:



Esse artigo faz parte da revista Java Magazine edição 21. Clique aqui para ler todos os artigos desta edição

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.Os artigos dessa edição estão disponíveis somente através do formato HTML. 

Java livre

Relatórios Avançados

Mais recursos do JasperRports e iReport

Aprenda a utilizar parâmetros, imagens e JavaBeans com as populares ferramentas livres para geração de relatórios

 

O engine para geração de relatórios JasperReports e o desenhador de layout iReport fornecem juntos um ambiente poderoso para o desenvolvimento de relatórios, tanto em aplicações web quanto desktop. O artigo “Relatórios Comparativos” da Edição 13 apresentou ferramentas e foi um dos que mais gerou interesse dos leitores, especialmente em cartas com duvidas sobre recursos mais avançados. Atendendo à demanda, este artigo mostra a funcionalidade avançadas e dicas para resolução de problemas com duas ferramentas. Pressupomos noções básicas do JasperReports e iReport, mas os exemplos são construídos de forma que o leitor seja capaz de executá-lo mesmo sem conhecimento prévio.

 

Arquitetura de um relatório no JasperReports

Vamos começar com uma recapitulação. Um relatório do JasperRports recebe duas entradas: uma fonte de dados, que fornece os valores dos campos para detalhe do relatório, e um mapa (java.util.Map) com parâmetros, onde são passadas informações que não variam com cada linha do detalhe (uma linha de detalhe é a parte variável do relatório, geralmente associada a um registro ou conjunto de atributos da fonte de dados).

O relatório em si é organizado em faixas (bands). Exemplos de faixas são cabeçalhos e rodapés de pagina, coluna e grupo. A Figura 1 ilustra essa organização. Dentro das faixas podem ser ingeridos vários tipos de elementos gráficos, que ocupam uma área delimitada dentro de uma faixa e têm atributos como cor de fundo ou de borda.

Entre os elementos gráficos temos campos de texto estáticos, com conteúdo fixo, e campos de texto dinâmicos, que exibem o resultado de uma expressão em Java (ou com o Bean Sheall¹). Dentro dessa expressão são reconhecidas as seguintes construções para macro-substituição:

  • $P {nome} – parâmetro, fornecido como entrada para o relatório.
  • $V {nome} – variável, que é uma expressão recalculada dentro do relatório  em momentos específicos definidos pelo desenvolvedor.
  • $F {nome} – campo, que fica dentro de uma linha de detalhes

 

Parâmetros, variáveis e campos devem ser declarados antes de sua utilização nas faixas, de forma semelhante a variáveis e atributos em classes Java. De fato, um layout de relatório do JasperReprts é uma classe Java gerada à partir da sua descrição em XML e compilada em bytecodes, de maneira similar ao que acontece com uma página JSP nim container web.

As variáveis, expressões e campos são tipados, utilizando para isso classes e interfaces Java; campos de texto dinâmico também são tipados.

 

ü       É um erro comum o iniciante definir o tipo de uma variável e esquecer de definir o tipo correto para o campo de texto dinâmico que referencia a variável.

 

Vistos os conceitos básicos, podemos passar à pratica. Os quadros “Instalando e executando o iReport” e “Criando o banco de dados de testes” mostram como preparar o ambiente básico para execução dos exemplos. Depois, baixe do site da Java Magazine os fontes dos exemplos e abra no iReport o arquivo vendas.jrxml. A Figura 2 mostra com ele deve se parecer no preview do iReport. Uma vez que você consiga abrir e executar o relatorio com sucesso, estará pronto para prosseguir para o próximo tópico.

 

Figura 1. Estruturas de faixas de um relatório do JasperReports

 

Figura 2. Relatório vendas.jrxml em pré-visualização no iReport.

 

Utilizando parâmetros

O primeiro relatório de exemplo exibe o mesmo resultado (a não ser, é claro, que estejam modificados os registros no banco de teste). Mas normalmente espera-se que um relatório filtre dinamicamente os registros de acordo com critérios definidos pelo usuário. É ai que entram os parâmetros.

Nosso segundo exemplo é um relatório que exibe as vendas de um determinado produto em cada região em ordem decrescente de vendas. A Figura 3 apresenta o layout. O parâmetro “idproduto” recebido deve ser criado pela opção View|Report Parameter do iReport, como ikustra a Figura 4. O parâmetro é então utilizado na consulta do relatorio, que pode ser editada via opção View|Report Query. O comando SQL usado é o seguinte:

 

select regiao.nome.regiao,

">



ATENÇÃO! A EXIBIÇÃO DESTE ARTIGO FOI INTERROMPIDA.


  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!







Participe! Inclua um comentário
[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar ;-)



 
 

Artigo Java Magazine 21 - Relatórios Avançados

Artigo Java Magazine 21 - Caminhos para o Classpath

Artigo Java Magazine 40 - MySQL para desenvolvedores Java

Artigo Java Magazine 41 - Componentes Avançados do Swing

Artigo Java Magazine 41 - JDBC de Ponta a Ponta: Parte 1

Artigo Java Magazine 28 - Persistência com Hibernate

Artigo Java Magazine 31 - Eclipse Visual com SWT

Artigo Java Magazine 23 - Segurança J2EE no JBoss

Artigo Java Magazine 23 - Começando com Java

Artigo Java Magazine 22 - Segurança no J2EE

Artigo Java Magazine 22 - Datas e Horas em Java

Artigo Java Magazine 46 - JBoss: Instalação, Arquitetura , Configuração, Tuning e Administração

Artigo Java Magazine 27 - Uma Aplicação Java Completa, Parte 3

Artigo Java Magazine 02 - Código Java Nativo

Artigo Java Magazine 17 - GUIs Nativas com SwingWT

Artigo Java Magazine 13 - Relatórios Corporativos

Artigo Java Magazine 26 - Uma Aplicação Java Completa, Parte 2

Artigo Java Magazine 26 - Números em Java

Artigo Java Magazine 08 - Conheça o CVS

Artigo Java Magazine 07 - Bancos de dados livres

Artigo Java Magazine 09 - Tira dúvidas

Artigo Java Magazine 09 - Java Livre

Artigo Java Magazine 11 - NetBeans Inicial

Artigo Java Magazine 10 - Tira-dúvidas

Artigo Java Magazine 10 - Código Eclipse

Artigo Java Magazine 25 - Um Sistema Java Completo - parte 1

Artigo Java Magazine 24 - O Novo NetBeans

Artigo Java Magazine 24 - Tag Files no JSP 2.0

Artigo Java Magazine 32 - Explorando o NetBeans 5

Artigo Java Magazine 32 - News & Bits

Artigo Java Magazine 36 - Conhecendo o Ant

Artigo Java Magazine 35 - Frameworks de Logging

Artigo Java Magazine 37 - Introdução ao JMS

Artigo Java Magazine 38 - O Eclipse Callisto

Artigo Java Magazine 04 - Eclipse inicial uma introdução ao popular IDE livre

Artigo Java Magazine 34 - Melhores Práticas para o Struts

Artigo Java Magazine 19 - Java Livre

Artigo Java Magazine 20 - Servelets no Tomcat 5

Artigo Java Magazine 15 - Entity Beans no JBoss

Artigo Java Magazine 15 - Cafeína

Artigo Java Magazine 15 - Java news

Artigo Java Magazine 33 - Hibernate na Web

Artigo Java Magazine 30 - O Novo HSQLDB

Artigo Java Magazine 30 - Tira-Dúvidas

Artigo Java Magazine 30 - News & Bits

Artigo Java Magazine 38 - Datas no Desktop

Artigo Java Magazine 29 - Clusters Web com Tomcat

Artigo Java Magazine 29 - Tira Dúvidas

Artigo Java Magazine 18 - Aplicações Web com Tomcat 5

Artigo Java Magazine 18 - Cafeína

Artigo Java Magazine 14 - Java livre

Artigo Java Magazine 39 - Cafeína

Artigo Java Magazine 42 - Componentes Avançados do Swing

Artigo Java Magazine 42 - JDBC de Ponta a Ponta

Artigo Java Magazine 43 - Modelagem com ArgoUML

Artigo Java Magazine 44 - BLOBs com JDBC e Swing

Artigo Java Magazine 45 - Stored Procedures com Java

Artigo Java Magazine 47 - Testes: Ferramentas e Boas práticas

Artigo Java Magazine 48 - Layout na Web com Tiles e CSS

Artigo Java Magazine 52 - Desenvolvimento Ajax com Java Parte 1:

artigo java magazine 51- No mundo da internacionalização

Artigo Java Magazine 50 - Projeto JBoss em Foco

Artigo Java Magazine 06 - Java Livre

Artigo Java Magazine 05 - Java Livre

Artigo Java Magazine 05 - Java News

Artigo Java Magazine 03 - Java Livre



[Fechar]
Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 4,90 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ 1,96 (assinante) ou R$ 2,45 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ 1,03
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
DevMedia Group   www.devmedia.com.br   |   www.javafree.org   |   www.mrbool.com
2010 - Todos os Direitos Reservados a DevMedia Group - (21) 3382-5038