JasperReports é uma ferramenta de relatórios de código aberto para Java que gera relatórios de aplicação. Esta ferramenta de relatórios suporta a exportação de conteúdo rico de relatórios para telas, impressoras ou vários formatos de arquivo, como HTML, PDF, XLS, RTF, CSV, XML, ODT e TXT.
O JasperReports também pode ser usado para aplicações habilitadas para Java, como Java EE, ou aplicações web para gerar conteúdo dinâmico.
Instale o JasperReports
Instale a Edição Comunitária do Jasper Reports a partir daqui.
https://community.jaspersoft.com/community-download
Estrutura do relatório Jasper
O modelo de relatório .jrxml consiste nas seguintes partes, conforme mostrado no diagrama abaixo.
1. O título contém a "manchete" do relatório. Ele aparece apenas uma vez no início do relatório. Por exemplo, o relatório se chama "Relatório do Aluno."
2. O título da página pode incluir informações sobre data e hora ou o nome da instituição. Ele é exibido no topo de cada página. Por exemplo: o título da página pode ser "Registros Estudantis."
3. Cabeçalhos de coluna listam os nomes de campos específicos a serem exibidos no relatório, como "ID do Aluno", "Nome do Aluno", "Endereço do Aluno", etc.
4. A seção de informações detalhadas exibe entradas para campos específicos. Por exemplo: Student ID=101, Student Name="Den Peek", Student Address="Pune".
5. Os rodapés das colunas podem exibir a soma de qualquer campo. Por exemplo, "Tempo total de estudo: 6 horas por dia."
6. O rodapé pode conter informações sobre o número da página. Ele é exibido no final de cada página, por exemplo: "Números de página 1, 2, 3 e todos os números de página."
7. Resumo: O resumo do relatório, escrito pelo menos uma vez no resumo.
JasperReports — Ciclo de vida
Projete o relatório — Nesta etapa, criaremos um arquivo JRXML, que é um documento XML contendo a definição do layout do relatório. Relatório de Compilação - Nesta etapa, o JRXML é compilado em um objeto binário chamado Jasper (*.jasper). Preenchendo dados em relatórios — nesta etapa, os dados da aplicação são preenchidos no relatório compilado. A classe net.sf.jasperreports.engine.JasperFillManager fornece as funções necessárias para preencher os dados do relatório. O sistema criará um arquivo de impressão Jasper (*.jrprint), que pode ser usado para imprimir ou exportar relatórios. Relatório de Exportação - Nesta etapa, podemos usar o JasperExportManager para exportar o arquivo de impressão Jasper criado na etapa anterior para qualquer formato.
Classe API
Existem muitas classes disponíveis para compilar projetos de relatórios JRXML, preencher relatórios, imprimir relatórios e exportá-los como arquivos PDF, HTML e XML.
Qual conteúdo está contido no pacote (net.sf.jasperreports.engine)?
· JasperCompileManager — Usado para compilar modelos de relatório JRXML. · JasperFillManager — Usado para preencher relatórios usando dados de fontes de dados. · JasperPrintManager — Usado para imprimir documentos gerados pela biblioteca JasperReports. · JasperExportManager — Usado para obter conteúdo em PDF, HTML ou XML de documentos gerados durante o processo de preenchimento de relatórios.
Fonte dos dados
Uma fonte de dados é um contêiner de dados estruturado. Ao gerar relatórios, o motor JasperReports recupera dados da fonte de dados. Os dados podem ser obtidos de bancos de dados, arquivos XML, arrays de objetos e coleções de objetos.
A tabela abaixo resume as fontes de dados e suas classes de implementação—
Elementos de dados do Jasper Reports
Parâmetros: $P $P{parameter_name)
· Ele é usado para valores individuais no relatório.
· Dados que não podem ser passados pela fonte de dados podem ser passados por parâmetros. Por exemplo, títulos de relatórios e outros dados.
· Os templates JasperReports ou JRXML podem ter zero ou mais elementos de parâmetro.
Campo: $F $F{field_name}
· Campos de relatório são elementos que representam o mapeamento de dados entre fontes de dados e modelos de relatório.
Ele é usado para alterar valores em cada iteração, ou seja, para representar uma linha de dados em uma tabela.
Variável: $V $V{variable_name}
· Ele é fornecido pelos relatórios de Jasper.
Também é usado para realizar cálculos em relatórios Jasper, como operações aritméticas.
Etapas para criar qualquer relatório Jasper
1. Projete o modelo copiando o arquivo jrxml para a pasta Spring Resources
2. Criar parâmetros necessários
3. Criar fontes de dados
4. Compilar o template .jrmxl armazenado no objeto JasperReport
5. Preencha o relatório — passando objetos compilados .jrxml, parâmetros e fontes de dados.
6. Relatórios de Exportação — Use o JasperExportManager
Exemplo de SpringBoot — JasperReports
Adicione dependências do Maven.
Controlador
Serviço
emp24.jrxml
Após a execução, você receberá o relatório gerado.http://localhost:8990/empapp/api/v1/reports/jasper/emp24?fileType=doc
JasperReports — Exemplo de representação de subrelatório
Para subrelatórios, abra o template existente emp.jrxml e adicione outro template user.jrxml como subrelatório.
Para adicionar um relatório filho ao relatório principal, abra o relatório principal, clique no relatório filho no painel, arraste para a área de resumo e forneça os seguintes detalhes.
Selecione "Criar elementos de relatório apenas filhos" e clique em "Próximo." Não use conexões de banco de dados, depois prossiga para a próxima etapa e termine. Clique com o botão direito > Alinhar > Adaptar ao formato de largura/tabela
Para subrelatórios User.jrxml, passaremos os dados do subrelatório principal como parâmetro. Para alcançar isso, precisamos ......
Crie um novo parâmetro como subReport e o tipo de dado JasperReport como no relatório principal Crie novos parâmetros para subDatasource e tipo de dado JRBeanCollectionDataSource Criar novos parâmetros subParâmetros e tipo de dado Map
Agora abra as propriedades do subrelatório
Eliminar $P{REPORT_CONNECTION} Expressão: $P{subReport} Expressão de mapeamento de parâmetros: $P{subParâmetros} Expressão da fonte de dados: $P{subReportDataSource}
Agora, qualquer dado que passarmos como parâmetro será preenchido no subrelatório.
Código de exemplo
empSubreport.jrxml
Teste-o:http://localhost:8990/empapp/api/v1/reports/jasper/subreport?fileType=pdf
Referência:O login do hiperlink está visível. Original:O login do hiperlink está visível. |