Daniel Sousa

Um blog sobre tecnologia, internet, entre outros…

Navegando Posts marcados como report

Afim de possibilitar a geração de relatórios relativamente grandes, o JasperReports dispõe de um recurso chamado “virtualização”. Ao gerar um relatório utilizando virtualização, o JasperReports busca gerenciar melhor a memória RAM utilizada para geração do mesmo, tentando assim, eliminar um grande incômodo chamado “OutOfMemoryException: Java heap space”.

Existem 3 tipos de virtualização: JRFileVirtualizer, JRSwapFileVirtualizer, e JRGzipVirtualizer. Cada uma gerencia a memória de forma distinta, cabe ao desenvolvedor identificar a situação e a que melhor se adequar ao seu problema. Neste artigo, pretendo explicar o funcionamento de cada um deles.

continue lendo…

Uma tarefa comum quando utilizamos tabelas, seja no MS Word/Excel, etc… , é mesclar células.

Sendo assim, é de se esperar que possamos fazê-lo também com uma tabela feita no iReport. Essa não é uma tarefa tão simples, pois não existe uma opção explícita para fazê-la, é necessário prestar atenção nos detalhes.

Para mesclar duas células (ou mais), basicamente, é necessário selecionar as colunas delas, e então agrupá-las. Desse agrupamento, um novo elemento é criado na Table (visível apenas na árvore da tabela, no painel Report Inspector). Para que a célula mesclada apareça na tabela, basta clicar com o botão direto sobre esse novo elemento, e clicar em “Add Cell”.

Fiz um vídeo, comentado em áudio, demonstrando passo-a-passo como realizar esta tarefa, espero que ajude =]

Download do material do vídeo:

JRXML

Na versão 3.7.2, o jasperReports ganhou um novo componente: Table.
E como não poderia deixar de ser, no iReport 3.7.2 podemos usar ele e criar tabelas visualmente.
No vídeo a seguir, demonstro um passo-a-passo de como utilizar esse componente.

Espero que gostem =].  Não foi possível colocar no youtube devido ao tamanho…

Em posts futuros, explicarei mais detalhes do uso da table, tais como mesclar células, esconder colunas e utilizar agrupamentos.

Vídeo: Usando o componente Table (Têm Áudio)

Download do material do vídeo:

JRXML
PDF

Obs: A base de dados eu disponibilizo para download também caso alguém se interesse.

Lançado o iReport 3.5.3 .

Essa versão corrige uma série de bugs vindos das versões 3.5.1 e 3.5.2, além de trazer novidades interessantes:

- Atualizado para a versão do JasperReports 3.5.3
- Melhorias na tela de edição de expressões
- Subrelatórios são compilados automaticamente
- Melhoria na exportação para XML
- Novos formatos de exportação:  XHTML e DOCX
- Detecta automaticamente os softwares que abrem os relatórios gerados, não necessitando de configurá-los
- Novo template wizard, com vários modelos disponíveis

O download da versão standalone pode ser efetuado no link abaixo:
http://sourceforge.net/projects/ireport/files/

Para aqueles que preferem utilizar o iReport como plugin do NetBeans, podem baixá-lo no seguinte link:
http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=4425

Em breve, postarei artigos sobre esta nova versão..

Abraços!!

Como esse é um tema bastante procurado, escrevi um novo post com maiores detalhes sobre virtualização: http://bit.ly/aJYhV9

Quando tentamos gerar relatórios muito grandes com o JasperReport / iReport, é muito comum que aconteça erro de estouro de memória: OutOfMemoryException: Java heap space

Para contornar esse problema, podemos “virtualizar” a geração do relatório utilizando um parâmetro pré-definido do jasperReports: REPORT_VIRTUALIZER

Com isso, ao invés do Jasper tentar preencher o relatório totalmente utilizando a memória, para somente depois liberá-la, ele “gerencia” a memória, gerando uma parte do relatório, e passando essa parte para um arquivo de cache, depois volta a gerar outra parte, e assim por diante, até o término da geração.

//Cria uma conexão com o banco
conexao = Conexao.getConexao()
 
//Cria um cache no  C:\tmp
JRFileVirtualizer fileVirtualizer = new JRFileVirtualizer(3, "c:\\tmp");
 
//Seta o parametro REPORT_VIRTUALIZER com o diretório onde será armazenado o cache
HashMap parametros = new HashMap();
parametros.put(JRParameter.REPORT_VIRTUALIZER, fileVirtualizer);
 
//Preenche o relatório
JasperFillManager.fillReportToFile("MeuRelatorio.jasper", parametros,conexao)

Com isso, by by OutOfMemoryException…

Powered by WordPress Web Design by SRS Solutions © 2017 Daniel Sousa Design by SRS Solutions