[声明]内容部分摘自网上,感谢网友共享
第一部分:环境配置
一、JDK、WEB服务器及数据库的安装与配置
(此处略,本文测试环境JDK1.5、Resin2.1.7、SQLServer2K)二、IReport的安装 下载地址 目前最新版本1.3.3 包中已经包含iText-1.3.1.jar和jasperreports-1.3.3.jar 下载报表中文支持包iTextAsian.jar下载地址(注:需注册)将下载的IReport解压至任意目录,如D:\iReport-1.3.3将iTextAsian.jar添加至lib目录下
执行iReport.bat或者iReport.exe均可启动iReport
第二部分:IReport使用简介
JasperReports可以理解为一个编译器或者解析器。用户通过IReport或者使用文本编辑器设计报表,其编码格式要符合jasperreports.dtd的标签和属性定义的XML编码格式。使用此XML文件,用户可以定义整个报表,描述哪里放置文本框、图形、怎样存取数据,怎样计算列值,如何显示等等,JasperReports工作原理如图:
XML源文件必须被编译后产生一个文件后缀为“.jasper”的报表文件,由JRDataSource提供数据对报表文件进行填充,现在有了数据加上jasper文件,就可以生成打印报表。即:A datasource + a jasper file = a printIReport是一个制作JasperReport XML文件的可视化设计工具。以下是其使用时的简单说明:
一、系统选项配置Options|选项,以下为注意的配置点
二、数据源设置:Data|连接/资料来源,选择New,DataBase JDBC connection 注:请先将JDBC包放置于目录lib下,否则不能显示您数据库的Driver;也可以在options|Classpath中进行JAR包的添加 三、主要使用的工具栏简介 四、Band详解 五、报表参数说明 系统默认变量 $V{PAGE_NUMBER}代表当前页数(可以是页码也可以是页数,通过TextField的计算时间的不同值来设置) $V{PAGE_COUNT} 当前页面中记录的数目 $V{groupname_COUNT}代表当前组的记录数 $V{COLUMN_NUMBER} 列号码 $V{COLUMN_COUNT} 当前列中记录的数目(是当前页里行的序号,在新页上会重置为1) $V{REPORT_COUNT} 当前文档中数据源记录数目 六、如果以PDF输出,元素字体设置如下 --------------------注:没有时间写,以下内容从简------------------------第三部分:简单示例
一、使用档案|报表精灵
1. 注意选择连接/资料来源(即数据源),在SQL query中填写报表查询语句 2. 依据您的查询语句选择列出来要显示的字段名 3. 分组字段的选择,可以选择三个,注意如果选择分组字段,SQL语句应加上相应的order by 4. 选择报表布局 参考 二、报表参数设置 参考 三、子报表 参考 (注:视频中子报表参数前要加P,视频没有添加) 四、分组报表 参考注:点击下载所有视频
第四部分:WEB使用示例
需要添加的包(在IReport目录lib下可以找到):
commons-beanutils-1.7.jar commons-collections-2.1.jar commons-digester-1.7.jar commons-logging-1.0.2.jar itext-1.3.1.jar iTextAsian.jar jasperreports-1.3.3.jar 一、胖客户端方式,代码如下 String xmlFileName = System.getProperty("user.dir")+""; String jasperFileName = System.getProperty("user.dir")+""; String printFileName = System.getProperty("user.dir")+""; try { /* 编译报表文件.jrxml,生成文件.jasper */ JasperCompileManager.compileReportToFile(xmlFileName); /* 设置参数*/ HashMap params = new HashMap(); //建立参数表 params.put("yourParamName",""); //设置参数值 Connection cnn = getConnection(); //自己添加得到数据库连接的函数 /*填充报表文件.jasper,生成文件.jrPrint*/ JasperFillManager.fillReportToFile(jasperFileName,params,cnn); //用数据填充报表 /* 预览报表文件.jrprint */ File sourceFile = new File(printFileName); JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); //生成报表结果 JasperViewer.viewReport(jasperPrint); //预览报表 freeConnection(cnn); //自己添加释放数据库连接的函数 } catch (JRException e){ e.printStackTrace(); }二、JSP访问方式
boolean isOK = true; //判断是否成功 try { //第一步:装载jasper文件 File jasperFileName = new File(request.getRealPath("/Reports/test_report.jasper")); //第二步:设置参数值 HashMap params = new HashMap(); params.put("yourParamName",""); //设置参数值 //第三步:利用JasperRunManager生成PDF文件 ConnectionPool connMgr = ConnectionPool.getInstance(); Connection conn = connMgr.getConnection(); JasperRunManager.runReportToPdfFile(jasperFileName.getPath(),parameters,conn); }catch(Exception ex){ isOK = false; } //以下只需要访问/Reports/test_report.pdf页面即可