用ireport做好报表编译好之后....要怎样在jsp中调用.....在jsp中要能够查询之后生成报表...要生成html 的....能不能给个调用传值的例子....网上找了半天都不行....各位大侠有自己做好的能运行的贴出来看看...谢谢ireport 1.3.2

解决方案 »

  1.   

    我刚好正在用JasperReport做报表,下面是我的代码:<%@ page language="java"  pageEncoding="UTF-8"%>
    <%@ page import="net.sf.jasperreports.engine.*" %>
    <%@ page import="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource" %>
    <%@ page import="net.sf.jasperreports.engine.export.*" %>
    <%@ page import="net.sf.jasperreports.engine.design.*" %>
    <%@ page import="net.sf.jasperreports.engine.xml.*" %>
    <%@ page import="net.sf.jasperreports.j2ee.servlets.*" %>
    <%@ page import="java.util.*" %>
    <%
        List list=(List)request.getAttribute("list");
        String path=application.getRealPath("/report/bphdfxreport.jrxml");
       //Load the sample report file from the XML file
       //into the JasperDesign object.
       JasperDesign design=JRXmlLoader.load(path);
       //Compile the Report in Memory storing it in a JasperReport object
       //now .jasper report file is created.
       JasperReport report=JasperCompileManager.compileReport(design);
       //Fill the report using the JRBeanCollectionDataSource passed
       //a Hibernate query result set.
       Map parameters = new HashMap();
    parameters.put("Title", "MyReport");
    parameters.put("name","freda");
    parameters.put("hh","113");
    parameters.put("zdjh","3");
       JasperPrint jasperPrint=JasperFillManager.fillReport(report,parameters,new JRBeanCollectionDataSource(list));
    session.setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
    // export
    JRHtmlExporter exporter = new JRHtmlExporter();
    session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
    exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
    exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=");
    exporter.exportReport();
    %>
      

  2.   

    为什么我生成html文件之后打开是空白的
      

  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.   

    这是重关键的两句
     List list=(List)request.getAttribute("list");
     String path=application.getRealPath("/report/bphdfxreport.jrxml");list对象里存的你查询的结果/report/bphdfxreport.jrxml
    这个要是你存储.jrxml就是用iReport设计的那个文件的实际路径
      

  5.   

    为什么不直接调用已经编译好的.jaspe文件....
      

  6.   

    我又没说不可以.你可以灵活应用吗!原则是,做出报表不是吗!如果你使用已经编译好的.jasper文件的话,就是填充数据的问题了. JasperPrint jasperPrint=JasperFillManager.fillReport(report,parameters,new JRBeanCollectionDataSource(list));
    根据不同的数据,
    JasperFillManager.fillReport()第三个参数是不同的.
      

  7.   

    三楼的:
    parameters.put("Title", "MyReport");
    parameters.put("name","freda");
    parameters.put("hh","113");
    parameters.put("zdjh","3");
    就是为了传值用的,传递了四个参数。
    当然,你要事先在ireport里面增加Title,name,hh,zdjh四个参数!