使用JasperReports生成PDF报表

1. JasperReports原理

jrxml:报表填充模板,本质是一个xml文件

jasper:由jrxml模板编译成的二进制文件,用于代码填充数据

jrprint:当用数据填充完jasper后生成的对象,用于输出报表

使用JasperReports生成PDF报表_第1张图片


2. 制作报表模板

2.1 模板设计器jaspersoft studio

2.1.1 软件下载

下载地址:https://community.jaspersoft.com/community-download

注意:该软件基于java编写的,本地jdk版本需在1.8及以上
 

2.2.1 创建工程和模板文件

创建工程

使用JasperReports生成PDF报表_第2张图片

使用JasperReports生成PDF报表_第3张图片

创建模板

在左上角的项目板块中新建空白模板,点击next可在下一界面修改模板名称

使用JasperReports生成PDF报表_第4张图片

2.2.2 板块介绍

在面板左下角可以看到有三种视图方式:
Design (设计模式)、 Source (源码模式)、 Preview (预览模式):
        通过 Design 视图可以看到模板的直观结构和样式
        通过 Source 视图可以看到文件 xml 源码
        通过 Preview 视图可以预览 PDF 文件输出后的效果

使用JasperReports生成PDF报表_第5张图片

右侧为常用元素,拖拽至设计界面即可使用

使用JasperReports生成PDF报表_第6张图片

Parameters 通常用来展示单个数据, Fields 通常用来展示需要循环的列表数据。

使用JasperReports生成PDF报表_第7张图片

2.2.3 添加数据源

第一步:在 Repository Explorer 面板中,在 Data Adapters 点击右键,创建一个数据适配器
使用JasperReports生成PDF报表_第8张图片
 
第二步:选择 Database JDBC Connection
 
 
第三步:选择 mysql 数据库,并完善 jdbc 连接信息
使用JasperReports生成PDF报表_第9张图片
 
第四步:加入mysql驱动包
使用JasperReports生成PDF报表_第10张图片
 
第五步:在 Outline 视图中,右键点击工程名,选择 Database and Query 菜单
使用JasperReports生成PDF报表_第11张图片
 
 
第六步:在弹出的对话框中选择刚刚创建的 JDBC 数据库连接选项
 
使用JasperReports生成PDF报表_第12张图片
 
第七步:在弹出对话框中 Language 选择 sql ,在右侧区域输入 SQL 语句并点击 Read Fields 按钮
使用JasperReports生成PDF报表_第13张图片
 
 
第八步:可以在 Fields中将刚查询出的数据拖入报表模板中
 
 

3. 在IDEAL中创建maven工程

3.1 导入maven坐标


    net.sf.jasperreports
    jasperreports
    6.8.0

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

 

 

 

你可能感兴趣的:(JasperReports)