#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.
Estatísticas:
Serviços:


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
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!




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 46 - JBoss: Instalação, Arquitetura , Configuração, Tuning e Administração

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



Introdução ao JBoss Seam

(tutorial) Aprenda a persistir dados em suas aplicações Java utilizando Hibernate

Aplicação Completa Utilizando Hibernate

Introdução a Design Patterns

Desvendando o JPA

Introdução ao ASP

Curso Completo MySQL

jQuery – A Biblioteca JavaScript para Webdesigners



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



Revista Engenharia de Software 28

Reuso de Software utilizando Padrões de Análise - Engenharia de Software 28

Refatoração para Padrões - Engenharia de Software 28

Auditoria de sistemas - Engenharia de Software 28

O Papel Evolutivo do Software - Engenharia de Software 28

Requisitos em SOA – Parte 1 - Engenharia de Software 28

Negociação de Contratos - Engenharia de Software 28

Há um colega chato em seu local de trabalho? - Engenharia de Software 28

Gerando o MD5 a ser impresso no cupom fiscal


Você está em:




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


