1. JasperReports原理
jrxml:报表填充模板,本质是一个xml文件
jasper:由jrxml模板编译成的二进制文件,用于代码填充数据
jrprint:当用数据填充完jasper后生成的对象,用于输出报表
2. 制作报表模板
2.1 模板设计器jaspersoft studio
2.1.1 软件下载
下载地址:https://community.jaspersoft.com/community-download
注意:该软件基于java编写的,本地jdk版本需在1.8及以上
2.2.1 创建工程和模板文件
创建工程
创建模板
在左上角的项目板块中新建空白模板,点击next可在下一界面修改模板名称
2.2.2 板块介绍
在面板左下角可以看到有三种视图方式:
Design
(设计模式)、
Source
(源码模式)、
Preview
(预览模式):
通过
Design
视图可以看到模板的直观结构和样式
通过
Source
视图可以看到文件
xml
源码
通过
Preview
视图可以预览
PDF
文件输出后的效果
右侧为常用元素,拖拽至设计界面即可使用
Parameters
通常用来展示单个数据,
Fields
通常用来展示需要循环的列表数据。
2.2.3 添加数据源
第一步:在
Repository Explorer
面板中,在
Data Adapters
点击右键,创建一个数据适配器
第二步:选择
Database JDBC Connection
第三步:选择
mysql
数据库,并完善
jdbc
连接信息
第四步:加入mysql驱动包
第五步:在
Outline
视图中,右键点击工程名,选择
Database and Query
菜单
第六步:在弹出的对话框中选择刚刚创建的
JDBC
数据库连接选项
第七步:在弹出对话框中
Language
选择
sql
,在右侧区域输入
SQL
语句并点击
Read Fields
按钮
第八步:可以在
Fields中将刚查询出的数据拖入报表模板中
3. 在IDEAL中创建maven工程
3.1 导入maven坐标
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.8.0</version>
</dependency>
3.2 将制作完的jrxml文件导入resource目录下
3.3 编写测试代码(需导入junit包)
@Test
public void testReport_JDBC()throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名称",
"root",
"root");
// jrxml文件路径
String jrxmlPath ="";
// 生成的jasper文件路径
String jasperPath ="";
// 编译模板,编译为后缀为jasper的二进制文件
JasperCompileManager.compileReportToFile(jrxmlPath, jasperPath);
//为模板文件准备数据,用于最终的PDF文件数据填充
Map map = new HashMap();
map.put("模板创建的Parameters名称","数据");
// 填充数据 使用JDBC数据源方式填充
JasperPrint jasperPrint =
JasperFillManager.fillReport(jasperPath, map, connection);
// 输出文件
String pdfPath = "F:\\test.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, pdfPath);
}
4. 中文乱码问题
①jrxml文件中的文字统一设为 宋体
②然后将下面文件导入resource目录下
https://download.csdn.net/download/qq_38199856/12079309