使用JasperReports生成PDF报表

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

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值