`

jsp上使用jasper做报表

 
阅读更多

1、先用ireport工具新建jrxml文件,再制作报表样式!

 

 

2、可以通过在控件的右键上设置边框,这是为了产生表格效果



 

 

好了 初步工作已经有了,我们经过编译后得到了一个jasper文件,那么我们怎么用在J2EE的项目中呢?

 

3、将下列信息配置在web.xml

	<servlet>
		<servlet-name>ImageServlet</servlet-name>
		<servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>ImageServlet</servlet-name>
		<url-pattern>/servlets/image</url-pattern>
	</servlet-mapping>

 
 4、导入运行jasper所要用到的5个jar包,jar包在下面的附件里。可以下载获得

 

5、配置完成后如何使用呢?  先学习如何在java类中使用 ,生成excel 、html、pdf等格式

package com.test;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;

@SuppressWarnings("unchecked")
public class Test3 {
	private static final String TASK_PDF = "pdf";
	private static final String TASK_XML = "xml";
	private static final String TASK_XML_EMBED = "xmlEmbed";
	private static final String TASK_HTML = "html";
	private static final String TASK_RTF = "rtf";
	private static final String TASK_XLS = "xls";
	private static final String TASK_JXL = "jxl";
	private static final String TASK_CSV = "csv";
	private static final String TASK_ODT = "odt";
	private static final String file = "D:\\workspase\\reportTest\\WebRoot\\report\\report3.jasper";

	private static final String exportFilePath = "f:\\report3";

	private static List getDataList() {
		List list = new ArrayList();
		for (int i = 0; i < 5; i++) {
			Map dataList = new HashMap();
			dataList.put("serialNo", "995400116528" + i);
			dataList.put("reqDate", "2009111" + i);
			dataList.put("businessType", "认购");
			dataList.put("productCode", "111409015" + i);
			dataList.put("productName", "2009年汇理财稳利系列F7计划");
			dataList.put("currencyType", "USD钞");
			dataList.put("reqMoney", "5300.00");
			dataList.put("transStatus", "正常");
			list.add(dataList);
		}
		return list;
	}

	private static Map getParameterMap() {
		Map parameterMap = new HashMap();
		parameterMap.put("CUSTOMER_NAME", "赵六");
		parameterMap.put("CUSTOMER_ACCOUNT", "98430100829415");
		parameterMap.put("TRANS_BANK", "9502");
		parameterMap.put("TRANS_DATE", "20091118");
		parameterMap.put("TRANS_OPERATOR", "11001157");
		return parameterMap;
	}

	public static void export(String fileType) {
		// 填充报表数据
		File reportFile = new File(file);
		JasperReport jasperReport = null;
		JasperPrint jasperPrint = null;
		try {
			jasperReport = (JasperReport) JRLoader.loadObject(reportFile
					.getPath());
			jasperPrint = JasperFillManager.fillReport(jasperReport,
					getParameterMap(), new JRBeanCollectionDataSource(
							getDataList()));

			// 导出报表文件
			if (TASK_XLS.equals(fileType)) {
				JRXlsExporter exporter = new JRXlsExporter();
				exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.TRUE);
				exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
				exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,	exportFilePath + "." + TASK_XLS);
				exporter.exportReport();

			} else if (TASK_HTML.equals(fileType)) {
				JRHtmlExporter export = new JRHtmlExporter();
				export.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
				export.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,exportFilePath + "." + TASK_HTML);
				export.exportReport();
			}else if(TASK_PDF.equals(fileType)){
				JRPdfExporter export  = new JRPdfExporter();
				export.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
				export.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,exportFilePath + "." + TASK_PDF);
				export.exportReport();
			}
		} catch (JRException e) {
			e.printStackTrace();
		}

	}

	public static void main(String[] args) {
		export("xls");
		
	}

}

 

 

如何在jsp中使用呢? 如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.util.*" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>
<%@ page import="net.sf.jasperreports.j2ee.servlets.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@page import="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
   <%
	Map parameterMap = new HashMap();
	parameterMap.put("ItemProjecID", "10010");
	parameterMap.put("SupervisionID", "1000000001");
	parameterMap.put("ConformityCode", "201109102218");
                //提供jasper所需要的parameters
    	List list = new ArrayList();
		Map dataList = new HashMap();
			dataList.put("workAreaName", "995400116528");
			dataList.put("UnitProjectType", "2009111");
			dataList.put("UnitProjectAddress", "test");
			dataList.put("UnitProjectSubType", "111409015");
			dataList.put("Scale", "2009年汇理财稳利系列F7计划");
			dataList.put("BargainStartDate", "USD钞");//提供jasper所需要的Fileds
		list.add(dataList);
		
	try {
		File reportFile = new File(application.getRealPath("/report/bj.jasper"));
		JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
				parameterMap, new JRBeanCollectionDataSource(list));

		JRHtmlExporter exporter = new JRHtmlExporter();
		
		session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
		
		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
		exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "./servlets/image?image=");
		exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
		
		exporter.exportReport();
	} catch (Exception e) {
		e.printStackTrace();
	}
   
   %>
  </body>
</html>

 搞定!

 


 附件中是一个小例子,大家可以参考!

  • 大小: 224.3 KB
  • 大小: 23 KB
  • 大小: 24.5 KB
分享到:
评论
3 楼 Mr.Cheney 2012-03-01  
zhaobin87 写道
为什么我用ireport4.02生成jpxml后,导入数据在Html上浏览看到的表格是一个方块一个方块的,方块之间有空隙,导出的PDF是表格,制作表格时候就使用上面说的右键填充的。

你做jasper的时候是不是拖到的中间有间隔
2 楼 Mr.Cheney 2012-03-01  
下载的请顶起
1 楼 zhaobin87 2011-09-23  
为什么我用ireport4.02生成jpxml后,导入数据在Html上浏览看到的表格是一个方块一个方块的,方块之间有空隙,导出的PDF是表格,制作表格时候就使用上面说的右键填充的。

相关推荐

    jsp调用jasper

    jsp 调用 jasper 是一种常见的报表生成方式,jasper 报表工具可以与 jsp 集成,以生成动态的报表。下面是 jsp 调用 jasper 的一些关键知识点: 1. iReport 设置默认语言:在 iReport 中,语言设置可以根据机器的 ...

    Jasper Report 报表的使用步骤及应用

    以下将详细介绍JasperReport报表的使用步骤及其基本应用。 1. **Jaspersoft Studio**:这是JasperReport的主要设计工具,提供了一个可视化的界面来创建和编辑报表。用户可以通过拖放操作来添加和布局报表元素,包括...

    本科毕业设计---基于jasper的报表管理平台设计与实现---.doc

    报表管理平台的设计和实现是基于Jasper技术的,将Jasper报表引擎、Spring、SpringMVC框架、Velocity模板引擎、iBATIS框架和MYSQL数据库等技术整合在一起,实现了报表管理平台的业务流程和技术框架。技术框架的视图层...

    jasper_Java

    jasper报表库通常与iReport或Jaspersoft Studio这样的可视化设计工具配合使用,这些工具可以帮助非程序员通过拖放方式设计报表模板。 在【压缩包子文件的文件名称列表】中,我们看到以下几个关键文件: 1. **test_...

    ireport+jsp基于jasperReport 实现导出报表至web页面

    标题中的“ireport+jsp基于jasperReport 实现导出报表至web页面”是指使用iReport工具和JasperReport库,结合JavaServer Pages (JSP) 技术,来创建和展示动态报表,并能将这些报表导出到Web页面上供用户查看。...

    基于Jasper的报表管理平台设计与实现论文.doc

    此外,论文还深入探讨了Jasper报表引擎的工作流程,包括如何解析报表模板文件,如何处理数据源,以及如何生成最终的报表输出。通过对这些关键技术的详细分析,为报表管理平台的实现提供了坚实的理论基础。 总的来说...

    ireport利用jsp导出excel&pdf;报表源代码

    3. **编译报表**:在服务器端,将.jrxml文件编译成.jasper文件,这是JasperReports引擎可以直接使用的格式。编译过程通常通过`JasperCompileManager.compileReport()`方法完成。 4. **填充数据**:使用`...

    web报表 教程 jsp excel html pdf

    利用ireport制作jasper jsp输出excel报表,pdf报表,html报表 代码简单易懂

    ireport+jsp

    2. **嵌入到jsp**:将生成的报表实例转换为InputStream,然后在jsp中使用 JasperViewer 或者 JasperExportManager 将报表导出到指定格式,或者直接显示在网页上。 3. **交互处理**:可以通过jsp接收用户的参数,动态...

    在Struts2中使用JasperReports生成报表

    将Struts2与JasperReports结合使用,可以方便地在Web应用中实现动态报表的生成和展示。 首先,我们需要了解Struts2中整合JasperReports的基本步骤: 1. **环境准备**:确保你已经安装了MyEclipse开发环境,并且在...

    japser实现批量打印

    设计完成后,`.jrxml`文件会被编译成`.jasper`文件,这是一个二进制格式,用于在运行时生成报表。 批量打印的实现通常涉及以下步骤: 1. **报表设计**:使用iReport创建报表模板。这包括定义报表的结构(如列宽、...

    Ireport子报表学习例子

    【Ireport子报表学习例子】是一个实用的教程,旨在帮助用户深入理解如何使用Ireport工具创建和设计子报表。Ireport是一款开源的报告设计工具,它允许开发者通过直观的图形界面来创建复杂的JavaServer Pages (JSP) 和...

    JasperReport+iReport报表工具

    开发者使用iReport可以不需要写代码就能设计复杂的报表布局,只需要拖放各种报表元素(如文本字段、图像、图表等)到报表设计面板上。iReport还支持预览功能,允许开发者在设计报表时实时查看报表的最终效果,从而更...

    struts2 + jasper report

    4. `.jasper`文件:预编译的报表模板,由JasperReport引擎使用。 5. `Java`源代码:Action类和其他业务逻辑,处理数据获取和报表生成。 6. JSP或HTML视图:展示报表的页面,可能通过Struts2标签库与Action交互。 在...

    JasperReports 报表

    JasperReports与JavaServer Pages(JSP)结合使用,可以方便地在Web应用程序中嵌入动态报表。 **一、JasperReports基础概念** 1. **报表模板(JasperReport)**:报表的核心是报表模板,它定义了报表的布局、样式...

    JavaWeb_Ireport_Jasper_JavaBean_Mysql

    在本项目"JavaWeb_Ireport_Jasper_JavaBean_Mysql"中,开发者使用了这些技术来实现一个数据驱动的报表系统。 Ireport是一个流行的报表设计工具,它是JasperReports库的一部分,允许开发者通过直观的用户界面创建...

    IReport教程(Word版本)

    在Web应用中使用IReport设计的报表,通常需要通过JasperServer或类似的报表服务器。报表文件(.jrxml)会被编译为.jasper文件,然后通过服务器API动态生成PDF、HTML或其他格式的报表。 9. **Web报表展示** Web...

Global site tag (gtag.js) - Google Analytics