架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 29|回复: 0

[资料] 【转】Spring Boot 与 Jasper Reports 的报表构建

[复制链接]
发表于 昨天 09:34 | 显示全部楼层 |阅读模式
JasperReports 是一款用于 Java 的开源报表工具,用于生成应用程序报表。该报表工具支持将丰富的报表内容输出到屏幕、打印机或各种文件格式,例如 HTML、PDF、XLS、RTF、CSV、XML、ODT 和 TXT。

JasperReports 也可用于 Java EE 或 Web 应用程序等支持 Java 的应用程序,以生成动态内容。

安装 JasperReports

从这里安装 Jasper Reports 社区版。

https://community.jaspersoft.com/community-download

Jasper报表结构

.jrxml报表模板由下图所示的以下部分组成。

QQ截图20260606092546.jpg

1.标题包含报告的“标题”。它只在报告开头出现一次。例如,报告的标题是“学生报告”。

2.页面标题可以包含日期和时间信息或机构名称。它显示在每页的顶部。例如:页面标题可以是“学生记录”。

3.列标题列出了要在报告中显示的特定字段的名称,例如“学生 ID”、“学生姓名”、“学生地址”等。

4.详细信息部分显示特定字段的条目。例如:学生 ID=101,学生姓名=”Den Peek”,学生地址=”Pune”。

5.列脚可以显示任何字段的总和。例如,“总学习时长:每天 6 小时”。

6.页脚可能包含页码信息。它显示在每页底部,例如:“页码为 1、2、3 及所有页码”。

7.摘要:报告的摘要,至少在报告的摘要中写一次。

JasperReports — 生命周期

QQ截图20260606092618.jpg

设计报表——在此步骤中,我们将创建 JRXML 文件,这是一个 XML 文档,其中包含报表布局的定义。
编译报告- 在此步骤中,JRXML 被编译成一个名为 Jasper 文件 (*.jasper) 的二进制对象。
将数据填充到报表中——在此步骤中,应用程序中的数据将被填充到已编译的报表中。net.sf.jasperreports.engine.JasperFillManager 类提供了填充报表数据所需的必要函数。系统将创建一个 Jasper 打印文件 (*.jrprint ),该文件可用于打印或导出报表。
导出报表- 在此步骤中,我们可以使用JasperExportManager将上一步创建的 Jasper 打印文件导出为任何格式。

API类

有许多类可用于编译 JRXML 报表设计、填写报表、打印报表、导出为 PDF、HTML 和 XML 文件等。

哪些内容存在于 ( net.sf.jasperreports.engine ) 包中?

· JasperCompileManager — 用于编译 JRXML 报表模板。
· JasperFillManager — 用于使用数据源中的数据填充报表。
· JasperPrintManager — 用于打印 JasperReports 库生成的文档。
· JasperExportManager — 用于获取报表填写过程生成的文档的 PDF、HTML 或 XML 内容。

数据源

数据源是结构化的数据容器。在生成报表时,JasperReports 引擎会从数据源获取数据。数据可以从数据库、XML 文件、对象数组和对象集合中获取。

下表总结了数据源及其实现类——

QQ截图20260606092741.jpg

Jasper Reports 数据元素

参数:$P
$P{parameter_name)

· 它用于报告中的单个值。

· 无法通过数据源传递的数据,可以通过参数传递。例如,报告标题等数据。

· JasperReports 模板或 JRXML 模板可以有零个或多个参数元素。

字段:$F
$F{field_name}

· 报表字段是表示数据源和报表模板之间数据映射的元素。

它用于在每次迭代中更改值,或者可以说它用于表示表中的一行数据。

变量:$V
$V{variable_name}

· 它由 Jasper 报表提供。

它还用于对 Jasper 报表执行一些计算,例如算术运算等。

创建任何 Jasper 报表的步骤

1.设计模板,将 jrxml 文件复制到 Spring Resources 文件夹

2. 创建必需参数

3. 创建数据源

4.编译存储在 JasperReport 对象中的 .jrmxl 模板

5.填充报表——通过传递已编译的 .jrxml 对象、参数和数据源。

6.导出报告— 使用 JasperExportManager

SpringBoot — JasperReports 示例

添加 Maven 依赖项。
控制器
服务
emp24.jrxml

QQ截图20260606092946.jpg
运行后,您将获得生成的报告。http://localhost:8990/empapp/api/v1/reports/jasper/emp24?fileType=doc

QQ截图20260606093050.jpg

JasperReports — 子报表示例

对于子报表,打开现有模板emp.jrxml,我们需要添加另一个模板user.jrxml作为子报表。

要向主报表添加子报表,请打开主报表,从面板中单击子报表,将其拖到汇总区域并提供以下详细信息。

选择“仅创建子报表元素”,然后单击“下一步”。
不要使用任何数据库连接,下一步,完成。
右键单击 > 对齐 > 适应宽度 / 表格格式

QQ截图20260606093130.jpg

对于 User.jrxml 子报表,我们将从主报表传递子报表数据作为参数。为此,我们需要……

按照主报表中的方式创建新的参数subReport和数据类型JasperReport
创建新参数subDatasource和数据类型JRBeanCollectionDataSource
创建新参数subParameters和数据类型Map

现在打开子报表属性

消除$P{REPORT_CONNECTION}
表达:$P{subReport}
参数映射表达式:$P{subParameters}
数据源表达式:$P{subReportDataSource}

QQ截图20260606093218.jpg

现在,我们作为参数传递的任何数据都将填充到子报表中。

示例代码
empSubreport.jrxml
测试他:http://localhost:8990/empapp/api/v1/reports/jasper/subreport?fileType=pdf

QQ截图20260606093341.jpg

参考:超链接登录可见。
原文:超链接登录可见。




上一篇:.NET/C# 使用 itext 对 PDF 增加文本水印
下一篇:NET/C# 使用 ClosedXML 将 Excel 读取到 DataTable 中
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-6-7 02:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表