Jasper + ireport 集成报表到Web应用,操作说明

合集下载

JasperReport 与iReport 的配置与使用

JasperReport 与iReport 的配置与使用

JasperReport 与iReport 的配置与使用1.JasperReport 与iReport 简介1.1 JasperReport 简介JasperReport 是一款报表打印组件,是开放源代码组织 中的一个java 报表打印工程,在我写这篇文章时,JasperReport 的最新版本是0.5.2 版,JasperReport 的最新版本可以从/index.html 下载得到。

JasperReport 适合用来做WEB 应用程序与Java Application 的报表打印组件,而且关键的一点是:JasperReport 是免费的!1.2 iReport 简介iReport 也是开源组织 中的一款免费软件,其主要作用是用来以可视化的方式设计生成JasperReport 所使用的报表格式文件,因为JasperReport 本身并未提供很好的可视化报表设计工具,iReport 的出现正好弥补了这个缺陷。

本文写作时的iReport的最新版本是0.3.0,iReport可以从 下载得到,注意下载的iReport 一定要与你所使用的JasperReport 版本相匹配,当然您也可以更新iReport 中所使用的JasperReport 组件,后面的文章中会有详细的介绍。

2.安装与配置2.1 JDK 的安装与配置2.1.1 JDK 的下载与版本选择JDK的最新版本可以从SUN的官方网站上下载得到, JDK 共分为3 个版本,J2ME,J2SE,J2EE,因为是在计算机上使用,我们需要下载使用 J2SE SDK,如果您的计算机是用来做软件开发,需要下载J2SE SDK,如果是用来运行已经编译好的JAVA 程序的,可以只下载J2SE JRE 即可。

下载JDK 时SUN 公司会要求你同意一个JDK 的使用许可协议,选接受协议后,会出现选择适合不同的操作系统平台使用的JDK 版本选择的界面,您可以根据自己使用的操作系统平台选择适合的JDK 版本。

jasperReports、iReport使用说明

jasperReports、iReport使用说明

jasperReports、iReport使用说明相关网址JasperReport下载地址: IReport下载地址:iText亚洲语言包下载地址:/iText JasperReports API 帮助:/api/1. readme为什么需要JasperReports?JasperReports是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,XML,Excel(通过POI或JExcelAPI实现)和Rtf(通过POI实现)格式。

该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。

它的主要目的是辅助生成面向页面的(page oriented),准备付诸打印的文档。

JasperReport借由定义于XML文档中的report design进行数据组织。

这些数据可能来自不同的数据源,包括关系型数据库,collections,java对象数组。

通过实现简单的接口,用户就可以将report library插入到订制好的数据源中。

为什么需要iReport?JasperReport借由定义于XML文档中的report design进行数据组织但是繁琐的XML标记和功能API在提供强大的动态及可扩展开发的同时也带来了超高的复杂性,所以我们需要一个图形化可视的IDE来编辑符合jasperReports API的XML文件。

而iReport正是这样一款工具。

我们用iReport可以进行可视化的报表设计。

然而任何事物都不是十全十美的,iReport这一款工具带给我们方便、快捷、直观的同时,也损失了报表设计的灵活性。

但就其实用性而言,所损失的灵活性也就微乎其微了。

2. iReport上手(1) 语言设置,安装好iReport以后,默认语言是繁体中文(2) 下面是一个较快上手的小例子,如有基础,可以跳过,无须浪费时间为新建报表起点击这里,在页面上拖双击可修改显示内容(3) iReport 各部分简单说明运行效果页头域数据域,需要迭代的数据放在这里列脚域页脚域这个页脚,只在最后一图形,图片放在这个域里·Title:每个报表一般会有一个名字,比如×××销售报表,title就是搁置这个名称的最好地方了,当然你也可以根据需要搁置在合适的地方。

跟我学JasperReports报表框架——利用iReport工具管理Web报表的应用示例

跟我学JasperReports报表框架——利用iReport工具管理Web报表的应用示例

1.1跟我学JasperReports报表框架——利用iReport工具管理Web报表的应用示例1.1.1利用iReport工具操作报表1、编译报表由于Jasperreport在运行时需要的就是一个*.jasper后缀的文件,编译过程其实就是把*.jrxml后缀的文件生成*.jasper后缀的文件。

(1)有关的菜单(2)编译过程中的状态输出(3)编译后所产生出*.java程序和*.jasper后缀的文件2、执行报表Jasperreport提供了两种运行的方式-------静态运行和动态运行,动态运行是带数据源的运行,比如带数据库运行。

前者就是静态文本运行,和数据源无关。

因此,在静态运行方式下,如果报表中出现和数据源有关的对象,则以null显示。

(1)静态运行的菜单(2)动态运行的菜单最好采用动态连接(前面已经设置了动态连接),从而能够动态地获得数据库表中的数据值。

将出现下面的结果3、预览显示报表在iReport中提供了JRViewer的预览显示方式,JRViewer是直接以C/S方式作为报表的输出格式,在JFrame框架下输出。

Jasperreport提供默认的JRViewer输出类,这是iReport 自身带的PDF格式预览。

选择其菜单然后再选择“执行报表(使用动态连结)”,将出现下面的结果4、导出为其它格式的报表iReport的出格式可以支持以下几种:PDF、HTML、CSV、JA V A2D、Excel、纯文字等形式。

选择其他格式的预览,系统会以这种格式保存到磁盘中。

保存位置读者也可以选择,在iReport菜单栏中选择Options,在其中选择Compiler标签,选择编译好的文件以及各种形式的报表保存位置。

在一些应用程序环境下,将JasperReport生成的文档从其特有的格式导出到其他更为流行的格式如PDF,HTML是非常有用的。

这样一来,其他人就可以在没有安装JasperReport 的情况下查看这些报表,特别是当这些文档要通过网络发送出去的时候。

Jasper + ireport 集成报表到Web应用,操作说明

Jasper + ireport 集成报表到Web应用,操作说明

北京xxxxxxxxx公司JasperReport + ireport集成报表到Web应用操作说明郝建柱2011/2/24第一部分,下载与安装Ireport官网:/,从这里可以下载到下载后的文件名安装:没什么注意的,一路回车就好了第二部分,ireport与JasperReport简单说明1,ireport,是一个制作报表的工具,用其设计报表样式2,JasperReport,是在程序里操作ireport报表的一套类库先简单介绍,以下详细说明第三部分,使用ireport制作报表以ireport3.7.6为例,依次选择“文件–》New…”出现下图在接下来出现的对话框中选择保存位置就好了。

建好的报表分这样几个部分,下面依次说明Title : 报表标题,也就是在报表首页出现的Page Header : 报表每页的页头,Page Footer页脚Column Header : 列头,Column Footer 列脚Detail : 对数据源进行循环显示Summary : 汇总,也就是在报表最后一页出现的不需要的部分可以在ireport左边删掉,如下图示接下来以Oracle数据库的scott用户中DEPT表为例,制做一个简单的报表1,设置报表语言在报表边缘外单击,在ireport右边的属性面板中找到Language属性,设置为Java,如下图示2,以数据库为报表的数据源,显示简单的报表首先,把oracle的jdbc驱动引到ireport里,具体做法为:点击:工具-》选项,找到Classpath选项卡,按下图操作找到oracle的JDBC,添加进来就好了然后,点击ireport工具栏上的这个按钮在弹出的窗口中点new按向导,建一个数据源,注意,这个数据源我们在ireport里设计报表用的,与程序并没有关系接下来点工具栏上这个在弹出的窗口中写查询语句,如下图示点OK后,在ireport左边的面板上Fields下边就有了sql所查出来的列,如图现在只要把Fields下边的,将来要显示字段拽到报表设计器中上Detail部分,就好了,注意:把Field拽到Detail中后,在Column Header会自动出现对应的列头,只要双击,就可以写中文了接下来从ireport右边的组件面板中找到Static Text控件,拽到Title里,双击就可以输入文字,结果如下注意:这里所有的Static 和Field,需要在右边的属性面板中,逐一设置两个属性,如图这是为了将来把报表集成到程序里之后,让其在页面上显示中文点击就可以看到结果一般查询都是有条件的,刚才写的sql是查全部的,现在写带查询条件的sql,具体做法为:在ireport窗口左边的面板里,找到Parameters右击,添加Parameter,如图选中刚才添加的这个参数,在右边的属性面板中给其设置名字,比如叫parDname修改刚才写的sql为这样的简单说明红色的部分:在ireport里,用$P{参数名}来取参数,这个参数以后可以从程序里传进来,上边的$P!{parDname},多了一个!号,表示,把接来的参数作为字符串拼到sql中,如果去掉!号,写成$P{parDname},就表示SQL参数,相当于在JDBC中写select * from dept where dname like ?这样就创建了带条件的查询3,使用Variable(变量)做简单的汇总以统计查询结果的总条数,和总人数为例注:在scott的dept表里没人部门人数一列,在此用部门编号来代替在ireport左边找到Variables点右键,添加两个Variable添加后,在右边的属性面板分别给两个变量起名,varPcount (统计总人数),varRecordCount(统计总记录数)在属性面板上,对varPcount设置,如图这几个属性一看就清楚其作用了,Reset type:Report是对事个报表做统计在Variable Expression里选择要统计的Field名,如图在属性面板上,对varRecordCount配置,如图在Calculation属性中,选择count,表示统计数量因为是数量,所以,Variable Expression里随便选一列就行对比:在没有分组过的sql里select count(*)和selectcount(deptno)的结果是一样的配置好好,将两个Variable从左边拽到报表中对应位置就好了,可参照下图预览后就可以看到结果了4,图表的显示,在此,以显示部门人数为例,做一个图表首先给报表添加一个数据集,操作如图示起名为dsPcount按向导完成数据集的创建,之后配置数据集,给数据集添加参数,如图起名为dsParDname在创建好的数据集上右键-》Edit Query,添加查询条件然后在从右边的组件面板中拽一个Chart控件到Summary部分,选择一个样式后,点OK,在接下来的向导中,第一步选择刚创建的数据集,dsPcount,第二步中,选择Key,Value,分别写两个按钮,选择要显示的键和值完成后,在生成的图表上右键-》Chart Data,在DataSet标签上下边做如下配置在Parameters标签中这样配置在Dataset parameters name,选择数据集的参数,在Value expression里,选择主报表定义的参数在Detail标签中,这样配置这样,显示图表的操作就完成了,预览就可以看到效果了第四部分,把报表集成到Web应用程序中用MyEclipse新建一个Web Project,在WebRoot下新建一个reports文件夹,用来放ireport生成的jasper文件找到前边保存ireport报表的路径,报表在预览后,生成jasper 文件,如图把这个deptReport.jasper文件复制到Web项目里的reports 文件夹中导入JasperReport的包,包可以从以下路径找到Ireport安装路径\iReport-3.7.6\ireport\modules\ext把这里所有的包引到Web项目里,引入oracle的jdbc驱动,接下来进行编程,以Servlet为例1,生成报表并且以HTML形式在网页上显示Servlet的主要逻辑代码如下:request.setCharacterEncoding("utf-8");// 接收查询参数,将来这个参数就是我们在报表中定义的parDnameString deptName = request.getParameter("dname");// 报表文件路径,我们用ireport做的jasper文件路径// JasperReport需要jasper文件的真实路径String reportPath = request.getSession().getServletContext().getRealPath("/reports/deptReport.jasper");// 报表参数,jasper文件可能不只一个参数// 在程序里,用一个Map对象,向jasper文件传递他需要的参数Map reportParameters = new HashMap();reportParameters.put("parDname", deptName);// 报表连数据库所用的数据连接// 因为报表直接以数据库为数据源,所以在这里需要给jasper文件一个jdbc连接Connection con = null;// 清空响应流response.reset();// 设置输出格式response.setContentType("application/html");// 创建JDBC连接Class.forName("oracle.jdbc.OracleDriver");con = DriverManager.getConnection("jdbc:oracle:thin:@oracle10:1521:oracle", "scott", "tiger");// JasperReport提供的类,用于生成一个HTML文件JasperRunManager.runReportToHtmlFile(reportPath, reportParameters, con);response.sendRedirect(request.getContextPath()+ "/reports/deptReport.html");/** 如果要在网页上显示PDF文件,把前两句去掉,放开这段注释* ServletOutputStream out = response.getOutputStream();* //从jasper报表生成PDF字节* byte[] pdfBytes = JasperRunManager.runReportToPdf(reportPath, reportParameters, con);* //设置输出内容长度* response.setContentLength(pdfBytes.length); //将PDF写入报表* out.write(pdfBytes, 0, pdfBytes.length);* out.flush();* out.close();*/// 关闭数据连接con.close();这里只写出逻辑代码,实际用的时候,加上各种异常的处理。

JasperReport+iReport报表工具详细开发手册

JasperReport+iReport报表工具详细开发手册
3. 入门篇..............................................................................................................................................5
3.1. IREPORT 入门........................................................................................................................5 3.1.1. 常用工具.........................................................................................................................5 3.1.2. 设置数据源........................ห้องสมุดไป่ตู้............................................................................................7 3.1.3. 新建空报表.....................................................................................................................7 3.1.4. 设置查询 SQL ................................................................................................................7 3.1.5. 设计报表.........................................................................................................................8

Jasperreport报表开发与Web项目整合

Jasperreport报表开发与Web项目整合

JasperReport报表开发与Web项目整合V1.0根据项目要求,需要在项目中将用户需要的数据以报表的形式展示和导出,结果类似下图提供给用户输入JSP页面1.新建一个JSP页面bookinfoInit.jsp,在该页作为给用户提供输入查询条件的窗口。

当用户写好查询条件后,点击“查询”按钮,进行查询。

这里可以将查询的结果立即展示给用户。

就需要在bookinfoInit.jsp中定义一个内联框架<iframe>,用来放置展示查询结果的JSP页面,我们把这个页面定义为htmlReport.jsp。

2.在bookinfoInit.jsp页面的<iframe>框架中,我们需要将htmlReport.jsp的路径给<iframe>,并将查询条件作为参数传递给htmlReport.jsp页面。

代码如下:在这里,当用点击查询按钮时,<iframe>中连接地址src被赋值,在跳转的同时携带参数。

对于中文参数需要同时转码传输,根据参数内容可以用JavaScript提供的编码方法,如encodeURIComponent(),encodeURI()或者其他可用的方法。

document.getElementById("_listframe").src="<%=_base%>/system/bookinfo/htmlReport.jsp?pBookName="+encodeURIC omponent(bookName)+"&pCategory="+category+"&pBookAuthor="+encodeU RIComponent(bookAuthor)+"";用于导出和展示报表的JSP页面获取查询参数和解码在htmlReport.jsp页面首先需要接收调用页面bookinfoInit.jsp传过来的参数,可以通过request.getParameter()方法接收。

ireport.+Jasperreport快速入门

ireport.+Jasperreport快速入门

前言目前我用到了iReport + jasperReports联合开发传统的报表(就是javaApplication上生成报表),而主流上许多人现在用它来开发web报表,关于web报表的资料也相对会多一些。

所以在此总结和转载了关于iReport和jasperReports的较为详细的关于java Application上应用的资料,后面还附有PostgreSql的详细安装过程。

感谢网络上提供了很多素材来源,希望这份资料对大家用。

希望大家在软件开发中共同进步,相互交流。

一、准备知识JasperReport iReportPostgreSqlJasperReport XMLPDF HTML XML XML CSVJasperReport21 xml iReport2JasperReportTitle Font Field Parameters PageFooter xml GroupHeader DetailiReport JasperReport XMLJasperReport xml jasper.jasperjasper jspservlet: JasperReport.xml xmliReport xml JasperReport iReportAnt Java build Unix C make make Ant JA V A XMLjasperReprots Antjava IDE Ant二、安装及环境配置1iReport iReport-1.2.5.zip iReport for JavaJasperreport: jasperreports-1.2.5-applet.jar jasperreports-1.2.5.jar/bindownload.cgi apache-ant-1.6.5-bin.zip/downlads/iTextAsian.jar iTextAsian.jar/download.html postgresql-8.1-405.jdbc3.jar 2, iReport-1.2.5.zip c:\iReportiReport jasperreports jar jasperreport,jasperReport jasperreports-project.zipjariTextAsianapache-ant-1.6.5-bin.zip c:\ant3iTextAsian.jar c:\iReport\lib jdk\lib\tools.jar c:\iReport\lib postgresql-8.1-405.jdbc3.jar c:\iReport\lib4 ,iReport.bat iReport1.2.2WindowsiTextAsian.jarjava jdkc:\iReport iReport.bat ANT_HOME=c:\ant;c:\iReport\bin startup.bat三、iReport使用介绍11.2.42点击“新增” 按钮可以创建一个新的空报表,考虑到生成后的XML文件编辑的时候可以显示中文,请在xml encoding选项上GB2312(没有选项自己手动输入),如下图:3,当设置完必要的选项点击完成可以得到一个空白的报表,如下图:4,好了,输入一段文本,很简单,点击创建“静态文本”按钮,然后在报表任何一个工作区(如title, pageheader, detail, pagefooter summary等等)输入,如输入“今天天气不错!”在属性框页可以对输入的内容进行属性控制,如字体,颜色,大小,以及其他的属性,报表中任何的元素(静态文本,线,框等等)都有自己的属性页,一般双击任何元素都可以弹出该元素的属性页,属性页如下图:5,完工,一个最简单的报表就生成了,iReport 配有运行环境,如下快捷按钮:左边的按钮是运行静态报表(无需数据库环境),右边的是运行动态报表(这时需要设置数据库连接,数据库的连接载下面介绍)那么经过上遍的努力,很显然我们将要运行的静态报表,那么点击左边的按钮就可以看到下面的pdf ,如图:下面下面将采用问答的方式进行逐步讲解将采用问答的方式进行逐步讲解iReport 更多更多的用法的用法1. 如何连接数据库如何连接数据库??2. 如何定义变量如何定义变量、、参数以及字段参数以及字段??3. 如何定义字体以及如何使用自定义的字体如何定义字体以及如何使用自定义的字体((如黑体如黑体、、楷体或者比较艺术化的子体)?4. 如何执行SQL 脚本进行查询脚本进行查询??5. 如何把做好的报表引入到应用程序中如何把做好的报表引入到应用程序中??6. 其它常用的设置以及其它常用的设置以及如何按照自己的意愿导出如何按照自己的意愿导出Excel 格式的文件格式的文件??好了,针对上面的问题,在下面的篇幅中给于解答并穿插介绍iReport 中其它的功能菜单。

JasperReport+iReport报表开发手册

JasperReport+iReport报表开发手册

JasperReports+iReport 报表开发手册V1.0写在前面...JasperReports是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。

它有一个相关的开源工程--IReport,这是一个图形化的辅助工具,主要用于数据报表设计。

JasperReports完全是由Java写成,可以应用于Java的应用程序,包括J2EE,Web应用程序中生成动态内容,它主要目的是辅助生成面向页面的(page oriented),准备付诸打印的文档。

总的而言,JasperReports主要分成三个部分,包括数据报表设计、数据填充与数据报表导出。

第一章JasperReport+iReport使用简介JasperReport在讨论jasperReport之前先介绍下Ireport.Ireport是个工具,用它可以方便的生成报表,比如可以动态链接数据库生成报表,也可以在SQL语句中输入参数,提取指定的数据生成报表。

用ireport生成报表最终会产生两种文件jsxml和jasper文件。

其中jsxml可以认为是XML文件,用来定义报表格式的,比如报表头是什么内容,报表体有哪些列等等,jasper是由jsxml编译生成的二进制文件,用来产生报表。

所以如果有jsxml文件,我们就定义好了报表的格式,现在还缺一个就是数据源了,用来填充报表。

比如数据源我们可以连接数据库得到。

综上所述,Jasper定义报表格式+数据源=最终生成的报表1.JasperReport是什么JasperReport是一个免费、开源的纯JAVA报表工具和引擎,功能很强大。

她可以支持多种数据源,支持Bean作为数据源(支持Hibernate)、Connection作为数据源、xml记录集数据源、ResultSet作为数据源,等等。

她可以很灵活地设计普通报表、主细表、交叉报表。

也可以很方便地将报表的结果导出成pdf、excel、rtf、html等等的格式。

解决Jasperreport的web 套打

解决Jasperreport的web 套打

解决Jasperreport的web 套打关于在web中的打印套打是经常被提到的,这个需求很广泛,中间忙了一些其他的事情,到今天才把在Jasperreport实现web套打的内容整理好。

下面开始讲述一下整个套打的过程1:首先用ireport制作一张套打的报表如下图如下模板所示在一个image组件上放上要打印的内容,我这里的演示是从数据库中取到的字段打印出来。

至于ireport模板的制作,我这里不做介绍,因为我自己也没有接触多久,会的不一定比你多。

2:创建JSP文件代码如下<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@ page import="net.sf.jasperreports.engine.*"%><%@ page import="java.util.*"%><%@ page import="java.io.*"%><%@ page import="java.sql.*"%><%@ page import="net.sf.jasperreports.engine.util.*"%><%@ page import="net.sf.jasperreports.engine.export.*"%><html><head><!-- 插入打印控件 --><OBJECT ID="jatoolsPrinter"CLASSID="CLSID:B43D3361-D975-4BE2-87FE-0571********"codebase="jatoolsPrinter.cab#version=5,3,0,0"></OBJECT></head><script type="text/javascript">function doPrint(how){//打印文档对象var myDoc ={settings:{pageWidth: 2100, //自定义纸张宽度(单位为十分之一毫米)pageHeight: 1400, //自定义纸张高度(单位为十分之一毫米)orientation: 1 //打印方向},enableScreenOnlyClass:true, // 使所有使用 screen-only 样式类的对象,只在预览、显示时可见,打印时隐藏documents: document, // 打印页面(div)们在本文档中marginIgnored: true,settingsID: 'mydocc', //打印设置的ID保存在注册表中copyrights: '杰创软件拥有版权 ' // 版权声明必须};// 调用打印方法if(how == '打印预览')jatoolsPrinter.printPreview(myDoc,true ); // 打印预览else if(how == '打印')jatoolsPrinter.print(myDoc ,true); // 打印前弹出打印设置对话框elsejatoolsPrinter.print(myDoc ,false); // 不弹出对话框打印}</script><body bgcolor="white"><br><input type="button" value="打印预览" onClick="doPrint('打印预览')"><input type="button" value="打印" onClick="doPrint('打印')"><input type="button" value="打印" onClick="doPrint('打印')"><br><%File reportFile = new File(application.getRealPath("/jasper/taoda.jasper"));JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());Map parameters = new HashMap();Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/DataName", "user", "password"); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);JRXhtmlExporter exporter = new JRXhtmlExporter();StringBuffer sbuffer = new StringBuffer();Map imagesMap = new HashMap();session.setAttribute("IMAGES_MAP", imagesMap);exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap); String imgServDirUrl = "/images/";File imgRealDir = new File(request.getRealPath(File.separator)+ imgServDirUrl);if (!imgRealDir.exists()) {imgRealDir.mkdirs();}exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath()+ imgServDirUrl);exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR,imgRealDir);exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR,Boolean.TRUE);exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);exporter.exportReport();conn.close();%>其中以下内容为jatoolsprinter所需代码<OBJECT ID="jatoolsPrinter"CLASSID="CLSID:B43D3361-D975-4BE2-87FE-0571********"codebase="jatoolsPrinter.cab#version=5,3,0,0"></OBJECT>function doPrint(how){//打印文档对象var myDoc ={settings:{pageWidth: 2100, //自定义纸张宽度(单位为十分之一毫米)pageHeight: 1400, //自定义纸张高度(单位为十分之一毫米)orientation: 1 //打印方向},enableScreenOnlyClass:true, // 使所有使用 screen-only 样式类的对象,只在预览、显示时可见,打印时隐藏documents: document, // 打印页面(div)们在本文档中marginIgnored: true,settingsID: 'mydocc', //打印设置的ID保存在注册表中copyrights: '杰创软件拥有版权 ' // 版权声明必须};// 调用打印方法if(how == '打印预览')jatoolsPrinter.printPreview(myDoc,true ); // 打印预览else if(how == '打印')jatoolsPrinter.print(myDoc ,true); // 打印前弹出打印设置对话框elsejatoolsPrinter.print(myDoc ,false); // 不弹出对话框打印起先在在jasperreprot中输出格式为html 背景图一直不显示,单独放一张图片,图片上不要有其他组件,就会显示,一直没搞清楚这个问题是什么原因,但是输出格式为xhtml的时候图片就会显示。

Java开源报表JasperReport、iReport4.5.1使用详解(四)

Java开源报表JasperReport、iReport4.5.1使用详解(四)
b).检查classpath
③进行报表设计,排列好字段。这步骤பைடு நூலகம்前面的几节有详细的介绍。
四、和Struts2
整合
我们的iReport的数据源,这里取一个List集合,这个List集合,我们从Struts2中获取。
①导入所需jar包
前面几节有介绍,再次不再赘述,需要注意的是,导入Jar包的时候要避免冲突
三、设置数据源
①选择JavaBean Datasource
输入Class name 然后单击 Read attributes②选择需要的字段,Add selected field 即可。
在上一步中,有可能出现Read attributes,读取不出来属性的情况,一般请检查下面两点:a).Class 是不是选对了
extends后面需要添加jasperreports-default
&lt;package name="test" namespace="/report" extends="struts-default,jasperreports-default"&gt;
②配置Struts2配置文件
&lt;package name="test" namespace="/report" extends="struts-default,jasperreports-default"&gt; &lt;action name="toHtml" class="totalViewAction" method="listTotalView"&gt; &lt;result name="success" type="jasper"&gt; &lt;param name="location"&gt;/web/report/groupScore/countView.jasper&lt;/param&gt; &lt;param name="dataSource"&gt;listTotaltView&lt;/param&gt; &lt;param name="format"&gt;HTML&lt;/param&gt; &lt;/result&gt; &lt;result name="error"&gt;/error.jsp &lt;/result&gt; &lt;result name="input"&gt; /error.jsp &lt;/result&gt; &lt;/action&gt; &lt;action name="toPdf" class="totalViewAction" method="listTotalView"&gt; &lt;result name="success" type="jasper"&gt; &lt;param name="location"&gt;/web/report/groupScore/countView.jasper&lt;/param&gt; &lt;param name="dataSource"&gt;listTotaltView&lt;/param&gt; &lt;param name="format"&gt;PDF&lt;/param&gt; &lt;/result&gt; &lt;result name="error"&gt; /error.jsp &lt;/result&gt; &lt;/action&gt; &lt;action name="toXml" class="totalViewAction" method="listTotalView"&gt; &lt;result name="success" type="jasper"&gt; &lt;param name="location"&gt;/web/report/groupScore/countView.jasper&lt;/param&gt; &lt;param name="dataSource"&gt;listTotaltView&lt;/param&gt; &lt;param name="format"&gt;XML&lt;/param&gt; &lt;/result&gt; &lt;result name="error"&gt;/error.jsp &lt;/result&gt; &lt;/action&gt; &lt;action name="toXls" class="totalViewAction" method="listTotalView"&gt; &lt;result name="success" type="jasper"&gt; &lt;param name="location"&gt;/web/report/groupScore/countView.jasper&lt;/param&gt; &lt;param name="dataSource"&gt;listTotaltView&lt;/param&gt; &lt;param name="format"&gt;XLS&lt;/param&gt; &lt;/result&gt; &lt;result name="error"&gt; /error.jsp &lt;/result&gt; &lt;/action&gt; &lt;/package&gt;

跟我学JasperReports报表框架——整合Struts2框架和JasperReport Web报表框架的应用示例

跟我学JasperReports报表框架——整合Struts2框架和JasperReport Web报表框架的应用示例

1.1跟我学JasperReports报表框架——整合Struts2框架和JasperReport Web报表框架的应用示例1、在某个Struts2 Web应用中添加所需要添加的包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、jasperreports-2.0.5.jar、jtds-1.2.jar(JDBC)、poi-3.0.1-FINAL-20070705.jar(Excel)2、添加插件struts2-jasperreports-plugin-2.0.8.jar<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts (View Source for full doctype...)>- <struts>- <package name="jasperreports-default">- <result-types><result-type name="jasper" class="org.apache.struts2.views.jasperreports.JasperReportsResult" default="false" /></result-types></package></struts>3、添加一个JasperAction程序类(1)继承com.opensymphony.xwork2.ActionSupport基类,程序包名称为com.px1987.struts2.action(2)编程JasperAction程序类中的相关功能实现方法package com.px1987.struts2.action;import com.opensymphony.xwork2.ActionSupport;public class JasperAction extends ActionSupport {public JasperAction() {}public String execute() throws Exception {return SUCCESS;}}4、配置JasperAction Action5、测试本示例的页面http://127.0.0.1:8080/Struts2Web/jasperAction.action。

ireport+jasperreport使用心得

ireport+jasperreport使用心得

ireport+jasperreport使用心得记录使用iReport + JasperReport 交叉报表添加数据的流程:在Java中使用JRDataSource填充Sub Dataset:1.在iReport的报表模板的parameters中添加一个parameter,为其设定名字,并设定其Parameter Class为Object,设定其Default value expression字段的值为null,否则ireport会报空指针错误2.创建一个sub dataset,为其设定一个名字,并在其fields中加入Crosstab所需要的各个字段,数据源选择empty datasource即可3.在summary中创建一个crosstab,选择其dataset为第2步建立的sub dataset,并利用这个dataset的fields字段创立crosstab4.右键点击Report Inspector栏中的crosstab,选择Crosstab data,在下面Dataset run中选择Sub dataset为刚才建立的sub dataset,在其Connection/Datasource exp中选择User datasource expression,在底下的expression栏中填入:$P{第一步建立的Parameter的名字}5.在java代码中,填充时首先建立一个Map<String,Object>的parameters map以便在fill时为parameters赋值,在这个parameters map中添加所有ireport中的手动创建的parameters,特别注意添加第一步时创建的parameter,key为其设定的名字,值为一个JRDataSource6.填充报表时需要注意,如果没有其他detail数据时,需要填充一个JREmptyDataSource作为替代,例子如:JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters,new JREmptyDataSource());7.利用生成的JasperPrint 利用JasperExportManager生成结果文件即可iReport导出pdf的中文不显示问题:在iReport中选定需要输入中文的字段,将其Pdf Font name修改成STSong-Light,并将其Pdf Encoding设定为UniGB-UCS2-H (Chinese Simplified) ,勾上Pdf Embedded,这样就可以了如果还是不能生成中文,则将iTextAsian的jar包加入到iReport 的选项的classPath下即可,同理,在使用JasperFillManager填充的时候也必须在环境中添加此jar包。

基于JasperReport+iReport的SCADA系统Web报表设计与实现

基于JasperReport+iReport的SCADA系统Web报表设计与实现

INFORMATION TECHNOLOGY 信息化建设摘要:报表是信息浏览、分析、打印的有力工具,是SCADA 系统的一个重要组成部分。

基于Web开发的报表具有高性能、开放性和扩展性等优点,在各行各业得到了广泛的应用。

论文研究了Web 报表的系统结构、生成机制及设计与实现,介绍了JAVA开源报表引擎JasperReport 与IReport的相关技术。

基于Web 报表的设计实现了动态数据报表与图形报表的生成、查询与在线打印,在SCADA 系统中得到了良好的应用。

关键词:JasperReport;iReport;SCADA系统;开源;Web报表人类社会已进入信息化时代,数字信息资源在国民经济社会发展中扮演着举足轻重的角色,各行业希望可以快捷地将数据库中所关心的数据以其它相关的信息直观展现,以便于决策分析,而报表的开发就可以实现这一需求。

由于众多分布式B/S架构系统的应用,用户需要远程对大量的分布式数据进行综合统计分析,所以基于Web架构方式设计开发的报表系统是最为简洁和高效。

考虑到SCADA系统报表业务量巨大,报表的设计如果按照传统的设计方式,不仅开发成本和运行成本高,而且开发周期长。

而iReport的出现,将报表从设计到发布的过程变得更为简单[1]。

本系统所采用的是基于浏览器方式的Web报表系统,它可以满足SCADA系统操作人员方便的查看各个场站的信息。

一、JasperReport与 iReport技术对比分析JasperReports是一个功能强大的报表生成开发工具,它可以将丰富的内容输出到展示端或生成PDF、HTML、 XLS、CSV和XML文件,并提供在线报表打印。

JasperReports基于Java编写,并可在各种Java应用中用来生成内容丰富的动态数据。

它是以一种灵活而简便的方式为用户提供创建导向式的Web页面[2-5]。

JasperReports通过XML文件,来描述定义报表设计,以JDBC连接的方式来获取关系数据库数据内容。

jasperReport使用说明

jasperReport使用说明

一、iReport软件安装步骤。

(默认安装即可)1、在安装iReport之前,先把jdk的环境变量配置好!否则iReport不能用,这是因为iReport是用纯java写的。

2、开始安装,双击iReport-4.0.2-windows-installer.exe3、点击next4、点击I Agree5、选中iReport,点击Next6、可以更改路径,点击Next7、剩下步骤,按照默认安装,安装完成!二、工具使用,新建模板、调整样式。

设计一个最简单的报表1、新建一个A4竖行的jrxml模版,如下图,点击Open this Template2、选择保存路径,点击下一步3、点击完成进入如下图,就可以编辑报表了4、开始编辑报表,如给报表添加一个标题“报表的标题”,在组件面板里将Static T ext 用鼠标直接拖到Title区域中将标题组件拖到合适的大小,也可以编辑字体等。

但是一定要在Title 区域。

5、用同样的办法,可以将需要的组件拖到报表模版中。

其中常用的StaticText是静态的,TextField组件是动态的。

6、如下图,是一个做好的报表。

其中$F{region_name},$F{ip},$F{volume}和javaBean的属性名字应一致,包括大小写,否则会找不到这个字段。

另外$V{index}是报表中自定义变量。

其中,可以查看属性配置,例如region_name,又如,自增变量index,如下还可以进行编辑表达式,7、最终编辑的ireport文件,就是一个xml文件8、预览9、JasperCompier再把这个xml文件编译成jasper文件,进行加载。

用jasper的jar类库把数据以报表的形式展示出来。

也可以导出成html、excel、cvs、pdf等各种格式。

10、导出pdf,需要设置属性和,否则中文会乱码。

11、也可以手工在iReport中编译成.jasper文件,然后在程序中加载.jasper文件。

JasperReport应用于web工程的开发步骤

JasperReport应用于web工程的开发步骤
File reportFile = new File(this.getServletContext().getRealPath("/jasper/country.jasper"));
//b、使用JRLoader报表加载器的loadObject()方法加载文件对象
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile);
4、将IReport工具编译生成的“.jasper”文件导入;
例如:city.jasper
5、在Java或jsp中获取“xxx.japer”文件(a、根据存放路径找到文件,创建文件对象;b、用JRLoader报表加载器的loadObject()方法加载文件对象);
//a、根据存放路径找到文件,创建文件对象;
6、获取数据源;
//JDBC数据源:
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/world";
String user = "root";
String password = "xtlhdemo2013";
conn.close();
11、对响应方式进行设置;
//设置响应头,文件导出时,选择存放路径
response.setHeader("Content-Disposition", "attachment;filename=first.pdf");
//设置文件扩展名

IReport3.7开发Web报表

IReport3.7开发Web报表

我已经很久没有亲自使用IReport开发报表了,记得当时用时还是零点几版本,转眼这么久过去了(估计2年了吧),今天公司要开发报表,而新同事们都不会,只好亲自上手做一个,也算是Demo吧。

再次到的官网下了一个IReport3.7.2的最新版,惊奇发现现在这东西好用多了,完全是Netbeans 框架实现的(本人可以Netbeans的忠实粉丝,一直用Netbeans开发)操作方便、人性化。

好了下面我就逐步来介绍IReport的使用,以后还打算写一个在项目中使用报表的例子。

1、下载IReport(既是废话,又套路,呵呵,就从这里开始吧)官网下载地址是:/plugins/project/project_home.php?projectname=ireport2、安装IReportIReport安装十分简单,这里就略了,否则真要被人拍砖了。

3、运行IReport直接在桌面上双击IReport图标就可以了,IReport3.7.2的闪屏还是蛮好看的,大家看看吧,如下图:进入IReport主界面后,大家会发现其和Netbeans真的是很像,毕竟一个遗传基因的,呵呵。

还是中文版的哦。

4、使用报表向导我将以一个简单报表的制作来讲解IReport制作报表时的一些常用项。

选择菜单中”文件“——>”New“(如图所示):进入报表设计的向导程序(如下图所示),在向导程序中可以选择报表模板,其它的(如风格、图表等)目前都不能用,我就选择”Blank A4“:选择”Launch Report Wizard“,系统引导你下一步(如下图所示)。

在这一步中在”Report Name“中输入报表的文件名,”Location“中指定报表文件存储目录。

选择”下一步“按钮,系统引导你配置数据源模式(如下图所示),在这里系统默认提供两种数据源模式”Empty DataSource“和”Sample Database(HSQLDB test)“,我在这里新建一个自己的数据源模式——”Javabean DataSource“。

iReport 和 Jasperreport 整合开发 WEB 报表向导

iReport 和 Jasperreport 整合开发 WEB 报表向导

iReport 和Jasperreport 整合开发WEB 报表向导本文由Jplateau 所撰写版权归属于Jplateau作者主页我是在一个星期以前接触iReport 和Jasperreport 的,下载最初它们并没有吸引我的兴趣(或信任),主要是他们的版本的问题(我一直不敢用版本都不到1.0的工具软件,目前它们的版本:iReport0.2.2, Jasperreport0.5.0),不过听说有人在用他们,于是就仔细看了一下(因为在java 应用程序的web 打印方面我一直都是采用浏览器打印,非常痛苦,所以宁可信其有不可信其无,呵呵……)一个星期下来,我针对项目中关于报表的一些需求点进行了尝试,发现他们都可以解决,真实大快人心,于是今天把他们推荐给各位。

其实我们做报表用的只是Jasperreport,iReport 是一个Jasperreport 的可视化开发工具(不要看它的界面有些简陋,我们要的操作他都可以帮我们轻松搞定。

),当然iReport 还有其他的用处,不过这里不做阐述。

目前几乎还没有中文的介绍他们整合开发的文章,尽管如此我也不准备非常详细的介绍它们,在这里我仅将我的一些经验写出来,不乏有些地方浅尝辄止,如果想细致的研究它们还请阅读它们配套的英文文档。

Jasperreport 的配套文档非常详细,该文档是收费的,不过网上有流传的电子版本,本人有幸得到一份,如果你需要可以到本人站点()获得,在此感谢Jasperreport 的为开源世界做出的贡献。

相反iReport 的文档不多,也许作者认为其足够简单,我也是经过无数的探索才有些开发的经验。

好了,让我们进入上述两者整合开发报表的历程……1.首先你要得到它们最新的版本,你可以到下边的地址下载iRport: Jasperreport: 他们的配置也很简单:iReport 解压缩以后编辑目录下的iReport.bat 文件即可,如下@echo offset JAVA_HOME=C:\jdk14set ANT_HOME=d:\antset IREPORT_HOME=C:\Documenti\progetti\iReport\iReport2\rem %ANT_HOME%\bin\ant javadocs%ANT_HOME%\bin\ant iReport是不是很简单,你只要设置相应的一些路经就可以,这里是采用ant 来运行,当然如果你没有安装ant 也不想安装它,那么也可以,不过这里我买个官子,你们自己可以到解压缩以后的目录中找到相应的运行方法。

ireportjasperreport开源报表中使用javabean作为数据源的详细实

ireportjasperreport开源报表中使用javabean作为数据源的详细实

ireport+jasperreport开源报表中使用javabean作为数据源的详细实Ireport+jasperreport是一款优秀的开源报表工具,支持数据库、javabean等多种数据源支持,可以在web 上生成html、pdf、xls、rtf等多种格式的报表。

使用javabean数据源实现报表的具体步骤1.实现环境Ireport:1.3.2操作系统:windowsXP程序环境:eclipse3.1.1+程序支持:a) 使用javabean做数据源,首先一定要有一个javabean类来支持,javabean中对每个成员变量都要一个getter和setter方法b) 使用javabean做为数据源,为了在设计报表时能够看到数据,在程序中要为ipreport提供一个静态方法,该方法返回上面定义javabean的一个结果集,这个静态方法可能在程序运行中并不是必须的,但是在ireport中它确实必须的,换句话说,这个静态方法是专门为ipreport量身定做的,为了ireport在设计报表时能够调用这个静态方法返回相应的javabean结果集,以便设计的报表在放在java项目中之前就能像使用sql数据库数据源一样可以浏览。

(刚开始还以为是必须程序中实现也要用静态方法,郁闷了好久,觉得这样太不方便了,后来醒悟,根本不是那么一回事)3.在ireport中设置javabean连接a)设置classpath,把java项目中的类路径加入到classpath中,注意是class文件而不是java文件,因为ireport是不会去编译classpath中的java文件的b)设置数据源c)报表查询4.设计报表使用javabean数据源来设计报表与使用sql数据库做数据源是完全相同的,只不过它的filed不是来自sql 语句,而是javabean中的成员变量。

本例是一个使用javabean数据源制作的交叉表。

5.报表的预览报表预览时,ireport会自动调用在数据源中设置的静态方法,返回javabean的数据集。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档