JasperReports的简单介绍

JasperReports的简单介绍JasperReport 是世界上最流行的开源报告引擎 它是完全用 Java 编写的 它是能够使用的数据来自任何类型的数据源 并生成像素级的文档 可以查看 打印或导出在多种文档格式 包括 HTML PDF Excel OpenOffice 和 doc JasperReport 是一个用 Java 开发的开源的程序库 使用户能够透过它 利用 Java 语言来开发具有报告功能的程序 JasperReport 的模版采用

简单介绍

JasperReports是世界上最流行的开源报告引擎。它是完全用Java编写的,它是能够使用的数据来自任何类型的数据源,并生成像素级的文档,可以查看、打印或导出在多种文档格式,包括HTML、PDF、Excel、OpenOffice和doc。JasperReports是一个用Java开发的开源的程序库,使用户能够透过它,利用Java语言来开发具有报告功能的程序。JasperReports的模版采用XML格式。iReport是开发JasperReports的图像换工具。

JasperReports可以通过多种数据源(XML、JavaBean、JDBC等)来生成多种格式的报表。这里使用JDBC连接数据库作为数据源,填充报表内容来产生数据。

产生JasperReports报表之前需要先创建报表模板,JasperReports采用XML的格式定义模板,模板基本分为如下几个部分:


  • title 

title 段只在整个报表的第一页的最上面部分显示,除了第一页以外,不管报表中共有多少个页面也不会再出现title段中的内容。 

  • pageHeader 

pageHeader 段中的内容将会在整个报表中的每一个页面中都会出现,显示在位置在页面的上部,如果是报表的第一页,pageHeader 中的内容将显示在title段下面,除了第一页以外的其他所有页面中pageHeader 中的内容将在显示在页面的最上端。 

  • columnHeader 

针对detail段的表头段,一般情况下在这个段中画报表中列的列标题。每页均会出现一次。 

  • detail 

报表内容段,在这个段中设计报表中需要重复出现的内容,detail 段中的内容每页都会出现。 

  • columnFooter 

针对detail段的表尾段,每页均会出现一次。 

  • pageFooter 

显示在所在页面的最下端,每页都显示,最后一页由lastPageFooter替代 

  • lastPageFooter 

最后一页页尾段内容,只在最后一页出现一次。 

  • summary 

表格的合计段,出现在整个报表的最后一页中的detail段的后面,一般用来统计报表中某一个或某几个字段的合计值。

使用iReport(4.0.2版本)开发report模板

1.打开iReport,选择需要产生报表的格式

JasperReports的简单介绍


2.选择报表存储位置

JasperReports的简单介绍


3.完成

JasperReports的简单介绍


4.进入到主界面后会看到整个报表分为几部分(即上面介绍的)

JasperReports的简单介绍


5.这时的数据源是空的,没有为报表指定任何数据源,我们这时要点击“小插头”按钮,添加数据源

JasperReports的简单介绍


6.这时会弹出一个对话框,可以看到这里提供了多种数据源,我们选择JDBC

JasperReports的简单介绍


7.这里填上数据库的连接信息

JasperReports的简单介绍


8.在数据源下拉列表中选择我们新加入的数据源

JasperReports的简单介绍


9.点击“向右拐剪头”这个按钮,来指定数据源中我们想获取的数据范围

JasperReports的简单介绍


10.在这个弹出的界面中可以看到可以根据SQL、JavaBean、CSV等方式来选取数据,我们选取SQL方式,输入正确的SQL语句后,可以看到表结构和部分数据,点击“OK”来保存

JasperReports的简单介绍


11.之后我们需要给报表的表头等位置加一些文字,这时拖动“Static Text”按钮到需要添加文字的文职

JasperReports的简单介绍


JasperReports的简单介绍


12.添加静态文字之后,我们需要把用SQL查出来的数据也添加到报表中,拖动“”按钮到Detail中,并修改$F{}中的变量名称,变量名称就是表的字段名称

JasperReports的简单介绍


JasperReports的简单介绍


13.之后我们点击“小榔头”按钮,编译这个报表,输出栏显示“Compilation running time ”时说明编译成功了,报表会被变成一个*.jasper的文件(之前的xml格式是jrxml)

JasperReports的简单介绍


JasperReports的简单介绍


14.此时,一个简单的报表模板就完成了,点击“Preview”来预览下这个报表

JasperReports的简单介绍


JasperReports的简单介绍


15.创建好的模板XML文件如下

 
          
          
           
           
           
           
            
            
           
          
            SELECT * FROM CARD WHERE PAN LIKE '%1%' 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
            
           
           <band height="79" splitType="Stretch"> <staticText> <reportElement x="165" y="22" width="236" height="29" /> <textElement /> <text> Test Report Title </text> </staticText> </band>  
           
            
             
              
              
             
               Test Report Page Header 
              
             
            
           
           
            
             
              
              
             
               Test Report Column Header 
              
             
            
           
           
            
             
              
              
             
               $F{......_ID} 
              
             
             
              
              
             
               $F{......} 
              
             
             
              
              
             
               $F{......_DATE} 
              
             
            
           
           
            
             
              
              
             
               Test Report Column Footer 
              
             
            
           
           
            
             
              
              
             
               Test Report Page Footer 
              
             
            
           
           
            
             
              
              
             
               Test Report Summary 
              
             
             
         

java中调用报表模板,产生相应的报表文件

用JasperReports提供的API调用模板,创建PDF

package com.test.report; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; import java.util.HashMap; import java.util.Properties; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperRunManager; public class JDBCGenerateReportTest { public static void main(String[] args) { try { DriverManager.registerDriver((Driver)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance()); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } Properties prop = new Properties(); prop.put("user", "your username"); prop.put("password", "your password"); Connection conn = null; try { conn = DriverManager.getConnection("jdbc:oracle:thin:@ip:1521:database", prop); } catch (SQLException e) { e.printStackTrace(); } OutputStream fos = null; InputStream fis = null; try { fos = new FileOutputStream(new File("report.pdf")); fis = new FileInputStream(new File("test_report1.jasper"));//注意inputStream中要传入编译后的报表文件 JasperRunManager.runReportToPdfStream(fis, fos, new HashMap 
          
            (), conn); } catch (JRException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } 
          
















版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213151.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午6:27
下一篇 2026年3月18日 下午6:27


相关推荐

  • python删除文件指定行

    python删除文件指定行我们现在有五行数据,我们想删除第三行:pig删除文本指定行:删除文本指定行用的是foriini,找到指定行的关键字,将不包括关键字的其他行放在生成器中,将生成器包含的内容重新写入文件。我们这里不用readlines是因为foriinf是使用一行读取一行,不会消耗太多的内存。如果使用readlines就会一次性将所有的内容全部读取出来放在内存当中,会占用较多的内存,且不方便我们对…

    2022年5月30日
    167
  • office2016专业增强版永久激活密钥 离线激活_增强版16office激活

    office2016专业增强版永久激活密钥 离线激活_增强版16office激活1.Office2016专业增强版永久激活码:MicrosoftOffice2016ProPlusRetailMak序列号XNTT9-CWMM3-RM2YM-D7KB2-JB6DVBHXN

    2022年8月5日
    9
  • python连接数据库

    python连接数据库一 python 连接数据库 pyton 连接数据库需要先安装 pymysql 模块 pipinstallpy 安装完成后导入 pymysql 模块 importpymysq 连接数据库主要分五个步骤 step1 连接数据库 step2 创建游标对象 step3 对数据库进行增删改查 step4 关闭游标 step5 关闭连接 1 连接数据库 conn pymysq

    2026年3月20日
    1
  • 最新xampp安装教程与配置

    最新xampp安装教程与配置XAMPP 安装并部署 XAMPP 这个集成软件包之前并没有了解过 为了完成软件质量保证与测试的实验在此踩坑 需要实验报告的朋友们能免费下载 缺陷管理工具 Mantis 安装及使用鉴于我们还不知道 XAMPP 是干什么的我们简单了解一下 了解 XAMPP XAMPP Apache MySQL PHP PERL 是一个功能强大的建站集成软件包 这个软件包原来的名字是 LAMPP 但是为了避免误解 最新的几个版本就改名为 XAMPP 了 它可以在 Windows Linux Solaris MacOSX 等多种操作系

    2026年3月20日
    2
  • top 命令详解_top命令列含义

    top 命令详解_top命令列含义概况top命令是Linux下最常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top命令1.命令格式:top[参数]2.命令功能:显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等3.命令参数:-b批处理-c显示完整的命令-I忽略失效过程-s保密模式-S

    2026年3月7日
    5
  • 《畅玩NAS》家庭 NAS 服务器搭建方案「建议收藏」

    《畅玩NAS》家庭 NAS 服务器搭建方案「建议收藏」NAS(NetworkAttachedStorage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。目前国际著名的NAS企业有Netapp、EMC、OUO等。说白话,就是家用的服务器。首选谈谈家庭NAS服务器的基本需求:1.7*24小时运行,最好有UPS电源保护

    2022年6月22日
    82

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号