ireport+jsp基于jasperReport 实现(后台map数据源)导出报表至web页面 二

来源:互联网 发布:阿里云校园扶持 编辑:程序博客网 时间:2024/05/22 06:12

接上文。。

<%@ page language="java" contentType="text/html; charset=GBK"    pageEncoding="GBK"%><%@ page    import="java.io.*,              net.sf.jasperreports.engine.*,              net.sf.jasperreports.engine.util.*,              java.util.*,              java.sql.*,             net.sf.jasperreports.engine.export.*,             net.sf.jasperreports.j2ee.servlets.*,             com.lowagie.text.*,             net.sf.jasperreports.engine.data.*"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%      /*    1,静态的数据 可以存在 parameters 中    2,动态循环的数据  存在 map 数据源中  reportRows     */    File reportFile = new File(application.getRealPath("jasper/report20.jasper"));    //JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());    JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile);//------------------数据库来的对应的数据----------------------------------------------------------    //静态数据。    Map<String,Object> parameters = getStaticdata();    //动态数据源。    ArrayList reportRows2 = getData();    //创建动态的数据源。    JRDataSource dataSource = new JRMapCollectionDataSource(reportRows2);    //(JasperReport对象/由指定.jasper文件生成,静态的数据--表名/静态列名等,动态数据源)    /*     下面的这个方法要三个参数,后面2个,是指数据源,    没有的话  第二个可以为 null;  第三个 可以写一个空的数据源    (jasperReport, null, new JREmptyDataSource())    */    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);    //用于处理图片显示问题。    session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);    JRHtmlExporter exporter = new JRHtmlExporter();    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);    exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);    exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath()+"/servlets/image?image=");    exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);    //pdf  /*  JRPdfExporter exporter = new JRPdfExporter();      exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());     */    exporter.exportReport();    out.flush();    //conn.close();%>

现在就基本完成了。里面也可以加图片,我也在网上搜了些方法去解决。没有大量测试。

小白一个,希望大家多多交流。下面是效果:
这里写图片描述

这里有我的demo,需要可以去下载
http://download.csdn.net/detail/qinzuoguo/9800029
启动服务器后直接请求里面的jsp页面即可。

0 0
原创粉丝点击