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

接上文。。

<%@ 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页面即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值