Tutorial do JasperReports: Para que serve o JasperReports? Java?

⚡ Resumo Inteligente

JasperReports para Java O Jaspersoft Studio é um mecanismo de geração de relatórios de código aberto que transforma dados de aplicativos em documentos com qualidade impecável. Este artigo explica o ciclo de vida da geração de relatórios, a instalação do Jaspersoft Studio, a criação de modelos de relatório, a estrutura de bandas, uma comparação com o Pentaho e as limitações práticas que as equipes encontram.

  • 📊 Definição Essencial: JasperReports é um Java Biblioteca de classes que renderiza dados para tela, impressora, PDF, HTML, XLS, RTF, CSV, XML, ODT e TXT.
  • 🔄 Estágios do ciclo de vida: O processo é dividido em quatro etapas: criação do arquivo JRXML, compilação para um arquivo .jasper, preenchimento com dados e exportação do resultado.
  • 🖥️ Ambiente de projeto: O Jaspersoft Studio Community Edition fornece o designer visual, e a versão 6.21.3 é a versão atual da comunidade.
  • 🧩 Estrutura da banda: As faixas de título, cabeçalho da página, cabeçalho da coluna, detalhes, rodapé da coluna, rodapé da página e resumo controlam onde cada elemento será impresso.
  • ???? Flexibilidade de dados: Um único relatório pode combinar JavaColeções de beans, conjuntos de resultados SQL, arquivos XML e adaptadores de dados personalizados.
  • ⚖️ Comparação de plataformas: A Jaspersoft lidera em documentação e inteligência de negócios móvel, enquanto a Pentaho lidera em painéis de controle e mineração de dados.
  • ⚠️ Limitação conhecida: Os relatórios devem ser compilados antes da execução, portanto, cada desenvolvedor de relatórios precisa de um conhecimento completo. Java SDK instalado.

Tutorial Jasper Reports

Para que serve o Jasper Reports Java?

Relatórios Jasper é uma ferramenta de relatório de código aberto para Java que é usado para gerar relatórios de aplicativos. Essa ferramenta de geração de relatórios ajuda a escrever conteúdo rico na tela, na impressora ou em diversos arquivos, como HTML, PDF, XLS, RTF, CSV, XML, ODT e TXT. O JasperReports também pode ser usado para Javaaplicativos habilitados como Java EE ou aplicações web para gerar conteúdo dinâmico.

Na maioria das discussões, três nomes de produtos aparecem juntos, e separá-los logo no início evita confusão mais adiante nesta página.

Nome O que é Quem usa isso
Biblioteca JasperReports O Java Biblioteca que compila, preenche e exporta relatórios. Java desenvolvedores incorporando relatórios em um aplicativo
Estúdio Jaspersoft O Eclipse Designer visual que produz arquivos JRXML Designers de relatórios criam layouts
Servidor JasperReports Um servidor independente que armazena, agenda e entrega relatórios. Equipes distribuindo relatórios para usuários de negócios

Esta página se concentra na biblioteca e no Jaspersoft Studio, pois esses dois componentes são tudo o que é necessário para criar e executar um primeiro relatório. Observe que a edição comunitária agora cobre apenas esses dois componentes, já que o JasperReports Server não é mais oferecido como download para a comunidade.

Por que usar relatórios Jasper?

Aqui estão vários motivos para usar uma ferramenta de relatório Jasper:

  • Ele oferece desempenho de geração de relatórios e entrega aos usuários.
  • Ajuda você a representar seus dados em formato textual ou gráfico.
  • É um servidor de relatórios independente e integrado para compilação e execução de relatórios.
  • Ele permite o controle de acesso baseado em função a todos os relatórios no repositório.
  • O framework Spring Security está disponível para integração com sistemas de autenticação internos.
  • Oferece um mecanismo de geração de relatórios interativos seguro, programável e com entrega automática.
  • Você pode incorporar relatórios em Java ou nãoJava aplicações.
  • Vários formatos de relatórios podem ser exportados.
  • Ele pode gerar marcas d’água que são colocadas sobre a imagem primária.
  • Oferece um conjunto completo de SABÃO, REST e serviços da Web.
  • Ele permite que você use dados de relatório único de diversas fontes de dados.

Como a biblioteca é distribuída sob a licença LGPL, ela pode ser incluída em produtos comerciais sem custo por usuário, o que explica sua popularidade. Java As equipes o preferem em vez de mecanismos de geração de relatórios proprietários.

Recursos dos relatórios Jasper

Agora, vamos abordar os recursos do JasperReports.

Aqui estão as principais funcionalidades da ferramenta Jasper Reports:

  • Oferece layout de relatório flexível em faixas, colunas e regiões de formato livre.
  • Os desenvolvedores podem fornecer dados de várias maneiras, incluindo JavaColeções de beans, consultas SQL e documentos XML.
  • É possível combinar diversas fontes de dados em um único relatório por meio de sub-relatórios e adaptadores de dados.
  • As marcas d'água também podem ser aplicadas sobre a imagem principal.
  • Você pode gerar sub-relatórios aninhados dentro de um layout principal.
  • Ajuda você a exportar relatórios em vários formatos, como PDF, HTML, RTF e Microsoft arquivos Excel.
  • O mecanismo permite que as definições de relatório incluam gráficos como barras, pizza, linhas e séries temporais.
  • As expressões de relatório podem ser escritas em Java, Groovy, ou JavaRoteiro.

Essas funcionalidades são expostas por meio de uma sequência de processamento fixa, que a próxima seção descreve etapa por etapa.

Ciclo de vida do JasperReports

Agora vamos aprender sobre o ciclo de vida do JasperReports.

A seguir, apresentamos o fluxo geral do ciclo de vida dos relatórios Jasper:

Ciclo de vida do JasperReports

O diagrama acima mostra as quatro etapas em ordem. Cada etapa produz um arquivo que se torna a entrada da próxima etapa, razão pela qual a sequência nunca pode ser invertida.

Etapa Entrada saída Extensão de arquivo
Desenho Decisões de layout Modelo de relatório .jrxml
Compilando Arquivo .jrxml Modelo binário compilado .jaspe
Executando Arquivo .jasper mais dados Relatório preenchido .jrprint
Exportando Arquivo .jrprint Documento final .pdf, .html, .xls e outros

Elaboração do relatório

Este será o primeiro passo, onde criaremos o arquivo JRXML. Trata-se de um documento XML simples que define o layout do relatório. Você pode desenvolver este arquivo usando qualquer editor de texto ou um designer de relatórios.

No entanto, se você estiver usando o designer de relatórios, podemos visualizar o layout do relatório e a estrutura real do JRXML pode ser ignorada.

Compilando o relatório

Nesta etapa do ciclo de vida, o JRXML, que é construído na primeira etapa, é compilado e um objeto binário chamado arquivo Jasper (arquivo com extensão .jasper) é gerado.

Esta compilação é feita para obter melhor desempenho durante a execução. Esses arquivos Jasper gerados devem ser enviados junto com seu aplicativo para executar os relatórios.

Executando o relatório

Nesta etapa, os dados da aplicação são coletados e preenchidos no formato de relatório compilado. Existe uma classe chamada net.sf.jasperreports.engine.JasperFillManager que oferece funções para preencher os dados nos relatórios.

O resultado será armazenado em um arquivo de impressão Jasper (arquivo com extensão jrprint) que pode ser usado para imprimir ou exportar o relatório.

Exportar o relatório para o formato desejado.

Nesta última etapa, você precisa exportar o arquivo de impressão Jasper criado anteriormente para qualquer formato usando a classe JasperExportManager. Como o Jasper oferece vários formatos de exportação, podemos usar a mesma entrada para criar várias representações dos dados.

Como instalar o Jasper Reports – Configuração do ambiente

Agora, vamos aprender o processo passo a passo para configurar o ambiente JasperReports. As capturas de tela abaixo foram feitas com o instalador da versão 6.9. A versão atual da comunidade é a 6.21.3, publicada em 23 de abril de 2024, e a sequência de telas permanece inalterada, embora o número da versão no nome do arquivo seja diferente.

Passo 1) Baixe a edição da comunidade do Jasper Reports
Vá para isto de vidrio e clique na opção "Baixar agora" para instalar a edição comunitária do Jasper Reports.

Instale Jasper Reports - Configuração do ambiente

Passo 2) Selecione Jaspersoft Studio CE
Na seção de edições comunitárias, selecione Jaspersoft Studio CE.

Instale Jasper Reports - Configuração do ambiente

Passo 3) Baixar Jaspersoft Studio
Vá para isto link Clique no botão "Download" e, em seguida, abra o arquivo executável do instalador baixado para o seu sistema operacional.

Instale Jasper Reports - Configuração do ambiente

Passo 4) Clique no botão "Concordo".
A seguinte tela será exibida. Selecione o botão "Concordo".

Instale Jasper Reports - Configuração do ambiente

Passo 5) Escolha a localização
Selecione o local de instalação e clique no botão Avançar.

Instale Jasper Reports - Configuração do ambiente

Passo 6) O progresso está acontecendo agora
Você verá o progresso na próxima tela.

Instale Jasper Reports - Configuração do ambiente

Passo 7) Clique no botão finalizar
Na próxima tela, clique no botão finalizar.

Instale Jasper Reports - Configuração do ambiente

Passo 8) O progresso está completo
A seguinte tela aparecerá na sua janela.

Instale Jasper Reports - Configuração do ambiente

Passo 9) Comece Agora
Em seguida, clique na opção "Começar".

Instale Jasper Reports - Configuração do ambiente

Passo 10) Comece a trabalhar com o estúdio Jasper Reports
A seguinte tela será exibida e você poderá começar a trabalhar com o Jasper Reports Studio.

Instale Jasper Reports - Configuração do ambiente

💡 Dica: O Jaspersoft Studio é um Eclipse aplicação baseada em compatibilidade e precisa de um aplicativo compatível. Java Verifique o ambiente de execução presente na máquina. Se o instalador se recusar a iniciar, confirme a versão do JDK instalada antes de reinstalar.

Exemplo de criação de modelo de relatório

Agora vamos aprender como criar um modelo de relatório no JasperReports.

O arquivo de modelo de relatório usado no JasperReports é um arquivo XML simples com a extensão .jrxml. Este arquivo contém a tag jasperReport como elemento raiz. O framework JasperReports é capaz de lidar com diferentes tipos de fontes de dados.

Um modelo de relatório é projetado e criado seguindo os passos descritos abaixo.

Passo 1) Criando o arquivo JRXML no Jaspersoft Studio.

  1. Acesse a opção Arquivo.
  2. Selecione o submenu Novo.
  3. Clique na opção Relatório Jasper.

Exemplo de criação de modelo de relatório

Passo 2) Selecionando o modelo desejado.

  1. Selecione seu modelo, por exemplo, cereja.
  2. Clique no botão "Next".

Exemplo de criação de modelo de relatório

Passo 3) Selecionando uma pasta pai.

  1. Selecione a pasta Meus Relatórios.
  2. Insira o nome do arquivo, por exemplo, “Relatório Cherry”.
  3. Clique no botão "Next".

Exemplo de criação de modelo de relatório

Passo 4) Na janela Fonte de Dados, clique no botão “Novo” para criar um novo adaptador de dados.

Exemplo de criação de modelo de relatório

Passo 5) Selecionando um adaptador de dados.

  1. Selecione o adaptador de dados na lista suspensa. Por exemplo, “Coleção de JavaFeijões."
  2. Clique no botão "Next".

Exemplo de criação de modelo de relatório

Passo 6) Inserir detalhes do adaptador de dados e selecionar a classe de fábrica.

  1. Insira um nome para o seu adaptador.
  2. Selecione a classe da fábrica clicando no botão “…”.

Exemplo de criação de modelo de relatório

Passo 7) Inserindo o prefixo ou padrão.

  1. Insira o prefixo ou padrão do nome.
  2. Clique nos itens correspondentes.
  3. Clique no botão “OK”.

Exemplo de criação de modelo de relatório

Passo 8) Definindo a classe de fábrica e adicionando o caminho para os arquivos jar.

  1. Insira o nome de um método estático na classe de fábrica. Neste exemplo de relatórios Jasper, é createBeanCollection.
  2. Se seu JavaA definição do Bean possui descrições de campos e, se você deseja usá-las como nomes no Jaspersoft Studio, marque a caixa de seleção "Usar descrição do campo".
  3. Adicione um caminho para seus arquivos jar.
  4. Clique no botão “Concluir”.

Exemplo de criação de modelo de relatório

Passo 9) Clique no botão "Next".

Exemplo de criação de modelo de relatório

Passo 10) Parabéns! Você adicionou com sucesso todas as informações necessárias para a criação do relatório. Clique no botão "Concluir".

Exemplo de criação de modelo de relatório

O relatório será gerado conforme mostrado na tela abaixo.

Exemplo de criação de modelo de relatório

O arquivo acima requer compilação para o formato binário do JasperReport, chamado arquivo jasper.

A interface net.sf.jasperreports.engine.design.JRCompiler, que faz parte da biblioteca JasperReports, desempenha um papel importante na compilação deste arquivo de modelo de relatório.

A implementação desta interface pode ser escrita em Java, JavaScript, Groovyou qualquer outra linguagem de script.

Você pode compilar um arquivo JRXML usando os dois métodos a seguir:

  • Compilação programática de Java código.
  • Compilação usando um Formiga Apache tarefa.

O trecho de código abaixo mostra a rota programática, onde uma linha compila o modelo e uma segunda linha o preenche com um JavaColeção de feijões.

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

public class ReportRunner {

    public static void main(String[] args) throws JRException {

        // 1. Compile the JRXML template into a .jasper file
        JasperReport report = JasperCompileManager.compileReport("CherryReport.jrxml");

        // 2. Fill the compiled template with a collection of beans
        JRBeanCollectionDataSource source =
                new JRBeanCollectionDataSource(EmployeeFactory.createBeanCollection());

        JasperPrint print = JasperFillManager.fillReport(report, null, source);

        // 3. Export the filled report to PDF
        JasperExportManager.exportReportToPdfFile(print, "CherryReport.pdf");

        System.out.println("Report exported successfully");
    }
}

Saída:

Report exported successfully

Entendendo as diferentes faixas de relatório

Um layout do JasperReports é dividido em seções horizontais chamadas bandas. Cada banda possui uma regra de impressão fixa, e a compreensão dessas regras é o que permite ao designer controlar exatamente onde um valor aparece no documento final.

A seguir, apresentamos as faixas de relatório padrão adotadas pela maioria das ferramentas comerciais de geração de relatórios.

  • Título
  • Cabeçalho da página
  • Cabeçalho da coluna
  • Detalhe
  • Rodapé da coluna
  • Rodapé da página
  • Rodapé da última página
  • Resumo
  • Cabeçalho do grupo
  • Rodapé do grupo
  • Contexto
  • Não existem dados

Vamos aprender cada banda de reporte em detalhes.

Título

Esta faixa é exibida no início do relatório. Ela pode ser colocada em sua própria página inicial definindo o atributo. isTitleNewPage="true".

Cabeçalho da página

A faixa de cabeçalho da página é exibida no início de cada página. Ela não aparece na primeira página se a faixa de título for usada, e não aparece na última página se a faixa de resumo for usada com a configuração definida. isSummaryWithPageHeaderAndFooter="false".

Cabeçalho da coluna

Os cabeçalhos das colunas aparecem antes da faixa de detalhes em cada página.

Detalhe

A seção de detalhes é iterada para cada registro na fonte de dados fornecida. Também é permitido ter várias faixas de detalhes (1, 2 e assim por diante).

Rodapé da coluna

Esta seção aparece abaixo da faixa de detalhes em cada página onde a faixa de detalhes está presente. A configuração padrão é no final da página, mas isso pode ser alterado para ficar abaixo da última faixa de detalhes definindo o atributo. isFloatColumnFooter="true".

Rodapé da Página

Esta seção será exibida no final de cada página, exceto na faixa de resumo, na faixa de título e na última faixa que não seja de resumo.

Rodapé da última página

Esta seção aparece na última página, no lugar do rodapé normal, quando não há uma faixa de resumo.

Resumo

A seção de resumo só aparece no final do relatório, em uma nova página. isSummaryNewPage="true" está definido, e com cabeçalho e rodapé da página quando isSummaryWithPageHeaderAndFooter="true" é definido.

Cabeçalho do grupo

Esta seção só aparece quando definida, sempre que a expressão do grupo muda, antes da faixa de detalhes.

Rodapé do grupo

Esta seção só é exibida se um grupo estiver definido, sempre que a expressão do grupo for alterada, após a faixa de detalhes.

Contexto

É exibido em todas as páginas como plano de fundo para todas as outras faixas de relatório.

Sem dados

Essa faixa aparecerá quando nenhuma fonte de dados for passada ou quando a fonte de dados estiver vazia. whenNoDataType="NoDataSection" é definido.

Jasper x Pentaho

Agora vamos aprender sobre a diferença entre Jasper e Pentaho.

Aqui estão as principais diferenças entre Jasper e Pentaho:

Parâmetros Técnicos Jasper Pentaho
Relatórios Jasper utiliza o Jaspersoft Studio para criar os relatórios. Ele utiliza o Pentaho Report Designer.
Suporte ETL A Jaspersoft utiliza a versão Talend Open Studio para fins de ETL. Ele usa Pentaho Data Integrator como padrão Ferramenta ETL.
Painel de controle A funcionalidade de painel de controle está presente apenas na edição Enterprise do Jaspersoft. A Pentaho oferece uma ampla gama de recursos em seus painéis de controle.
Inteligência Comercial Móvel O Jaspersoft oferece melhor suporte para BI em dispositivos móveis. A Pentaho precisa recorrer a uma ferramenta de terceiros para aprimorar a experiência de BI móvel.
Documentação Melhor marketing, sites e documentação. O suporte da documentação é fraco.
Melhor recurso Mais fácil de pesquisar e encontrar o que você precisa. Oferece mineração de dados e integração com o iPhone.
Versão paga A versão paga oferece recursos como consulta ad hoc Criação de interface web e painel de controle. Oferece funcionalidades como integração LDAP, SSO e auditoria.

Equipes que já investiram no Java Equipes que precisam de integração de dados robusta e geração de relatórios geralmente optam por outras soluções. Pentaho.

Desafios enfrentados durante a criação do JasperReports

Aqui estão alguns desafios que você enfrentará ao criar relatórios Jasper:

  • Alterações essenciais – quando as regras de negócio mudam ou são aprimoradas, é necessário alterar a lógica central do relatório.
  • Relatórios complexos – sub-relatórios e relatórios de tabela cruzada são bons exemplos.
  • Relatórios gráficos ou gráficos visuais, por exemplo, gráficos de barras, linhas XY, pizza, barras, séries temporais e gráficos de medidores.

Desvantagens de usar relatórios Jasper

Aqui estão as desvantagens de usar o Jasper Reports.

  • Depois de começar a fazer alterações em partes do pacote e remover funcionalidades, é muito difícil voltar à configuração padrão do pacote.
  • É demasiado rígido, e a edição de linhas e a criação de tabelas cruzadas são tarefas complexas.
  • Algumas tarefas comuns, como especificar subtotais para um relatório agrupado, são mais fáceis em outros editores de relatório.
  • Jasper exige que você compile relatórios antes de executá-los. Isso significa que os desenvolvedores de relatórios devem ter todo o Java SDK instalado.
  • Às vezes, quando você edita o relatório, ele não mostra a mesma visualização exibida na web.

Perguntas Frequentes

O arquivo .jrxml é o modelo XML legível que os designers editam. O arquivo .jasper é o binário compilado a partir dele, e somente o arquivo compilado é executado em tempo de execução.

A biblioteca JasperReports e o Jaspersoft Studio Community Edition são distribuídos sob uma licença de código aberto e podem ser incorporados em produtos comerciais. Os recursos de painéis, agendamento e segurança exigem a edição paga.

Sim. Crie um adaptador de dados JDBC no Jaspersoft Studio, forneça o arquivo JAR do driver e a string de conexão e, em seguida, escreva a consulta dentro do relatório. Os parâmetros são passados ​​com a sintaxe de cifrão e chaves.

Sim. Adicione a dependência do JasperReports, coloque os arquivos .jasper compilados no classpath e chame o JasperFillManager a partir de uma classe de serviço. Os bytes exportados podem ser transmitidos diretamente para uma resposta HTTP.

Assistentes de IA podem criar esqueletos JRXML e sintaxe de expressões rapidamente. Sempre abra o arquivo gerado no Jaspersoft Studio, pois as alturas das bandas e as coordenadas dos elementos frequentemente precisam de correção manual.

Ele processa documentos operacionais com precisão de pixels que os painéis de IA não produzem, como faturas e extratos. Os resultados do modelo são gravados em um banco de dados e o Jasper os renderiza para distribuição.

Resuma esta postagem com: