【清楚理解后台利用ireport到处报表的原理】ireport制作jasperreport报表详细过程(包括jsp端代

转自:

概述:

现在简要的介绍Jasperreport 是如何工作的,这样你可以更好的理解iReport 是如何帮助Jasperreport 实现前端的工作,其实这些工作在我们看来就是“脏活”,为什么呢?看看下面的资料就知道了:

首先是要有一个XML文件(一般是以jrxml后缀),那么这个XML文件从那里来呢?做什么用呢?

一个简单报表的xml文件就有几百行,你可以手工编辑这个XML文件(一行一行,一段一段的编辑吧――这就是所谓的“脏活”),

然后可以在jsp后台使用JasperCompileManager将xml文件编译为jasper文件

ireport工具就是简化编写xml文件和编译的这个流程,而且提供可视化编辑窗口,非常方便

ireport部分:

我使用的是ireport3.0和现在最新的4.0界面上有很大的不同:

3.0界面:

这里,香港空间,香港服务器租用,我假设ireport的环境已经配置完毕,点击左上角的档案,选择开启新档,设置报表初始化参数:

注意一下里边的字段数的按钮,字段数设置默认为1,如果设置为2的话,就相当于每一列会有2个字段排列,

这样讲有点抽象,请看下边的例子:

假设我们的数据表是这样:

namesexrealnameremark

a_1b_1c_1d_1

a_2b_2c_2d_2

a_3b_3c_3d_1

a_4b_4c_4d_4

a_5b_5c_5d_5

如果ireport的字段数设为2,结果会变成:

namesexrealnameremark

a_1 a_2b_1 b_2c_1 c_2d_1 d_2

a_3 a_4b_3 b_4c_3 c_4d_3 d_4

所以,一般设置字段数为1即可。

新建后,可以看到中间的控制面板:

这里,假设您只需要报表显示表格和统计数据,所以title和lastpagefooter可以不要,在左上角的预览里,选择栏,把title和lastpagefooter高度设为0.

下面开始设计报表:

然后可以拖拉到控制面板对应字段对齐

这里假设各位都会对其,效果图如下:

使用报表变量,计算统计值:

document下右键添加variable,出现这个界面,然后按照这样设置:

这里我是统计列a的个行相加值,因为前面

已经设置了sum,所以,报表会自动计算列a的相加值。

这里设计报表要注意几点:

1.字段间要对齐,方框为红色的,表明是超出报表边界

2.写表达式的时候,香港虚拟主机,与java类型兼容,但是写法有点不同,类型转换要用new 类型 不然会报错

jsp处理报表部分设置report环境:

1.每个Web应用都会有WEB-INF目录,但是lib 是不一定有的,

如果没有就创建它,本文需要的jar库文件有3个:

jasperreports-0.5.3.jar :jasperreports执行时需要的API

iTextAsian.jar :亚洲字符集支持

itext-1.02b.jar :其他字符集支持

2.在Web应用中根目录下创建repotrs目录,其实这是一种建议,

没有必要完全按照这样做,你可以根据你的业务需要创建N个目录或是层次目录。

把.jasper文件拷贝到repotrs目录下,比如例子中的BusinessRpt.jasper文件。

jsp两种模式:

1.直接使用jsp处理报表

2.使用servlet处理报表

1.使用jsp处理报表:

jsp文件:

1 <%@ page language=”java” pageEncoding=”GB18030″%> 2 <%@ page session=”false”%> 3 <%@ page import=”java.util.*”%> 4 <%@ page import=”javax.naming.*”%> 5 <%@ page import=”java.sql.*”%> 6 <%@ page import=”javax.sql.*”%> 7 <%@ page import=”java.util.*”%> 8 <%@ page import=”java.io.*”%> 9 10 <%@ page import=”dori.jasper.engine.*”%>11 <%12String path = request.getContextPath();13String basePath = request.getScheme() + “://”14+ request.getServerName() + “:” + request.getServerPort()15+ path + “/”;16 %>17 <html>18<head>19<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>20<title></title>21<%22DataSource ds = null;23try {24InitialContext ctx = new InitialContext();25ds = (DataSource) ctx.lookup(“java:comp/env/jdbc/mysql”);26Connection conn = ds.getConnection();File business_rpt = new File(application29.getRealPath(“/reports/BusinessRpt.jasper”));Map parameters = new HashMap();34parameters.put(“ProjectName “, proname);JasperRunManager.runReportToHtmlFile(business_rpt.getPath(),37 parameters, conn);response.sendRedirect(“/reports/BusinessRpt.html”);40} catch (Exception ex) {41out.print(“出现例外,信息是:” + ex.getMessage());42 ex.printStackTrace();43 }44%>45</head>46<body>47</body>48 </html>学习会使你永远立于不败之地。

【清楚理解后台利用ireport到处报表的原理】ireport制作jasperreport报表详细过程(包括jsp端代

相关文章:

你感兴趣的文章:

标签云: