本帖最后由 ryan1214 于 2013-09-27 23:33:51 编辑

解决方案 »

  1.   

    后台servlet:
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    JasperPrint jasperPrint=null; 
    DBSQL db = DBSQL.getInstance();
    Map parameters=null;
    File reportFile=null;
    String aac001=request.getParameter("aac001");
    String aae140=request.getParameter("aae140");
    String aae114=request.getParameter("aae114");
    if(("0".equals(aae140)||aae140=="0")&&("-1".equals(aae114)||aae114=="-1")){
      //只接收aac001
    parameters = new HashMap();
     parameters.put("aac001", aac001);
     reportFile = new File(this.getServletContext().getRealPath("/report/grjfxx_noall.jasper"));  

    }else if(!"0".equals(aae140)&&aae140!="0"&&!"-1".equals(aae114)&&aae114!="-1"){
    //全接收
    parameters = new HashMap();
      parameters.put("aac001", aac001);
      parameters.put("aae140", aae140);
      parameters.put("aae114", aae114);
       reportFile = new File(this.getServletContext().getRealPath("/report/grjfxx_all.jasper"));  

    }else if(("0".equals(aae140)||aae140=="0")&&(!"-1".equals(aae114)&&aae114!="-1")){
    //接收aae114,不接收aae140
    parameters = new HashMap();
      parameters.put("aac001", aac001);
      parameters.put("aae114", aae114);
       reportFile = new File(this.getServletContext().getRealPath("/report/grjfxx_noaae140.jasper"));  

    }else if(("-1".equals(aae114)||aae114=="-1")&&(!"0".equals(aae140)&&aae140!="0")){
    //接收aae140,不接收aae114
    parameters = new HashMap();
      parameters.put("aac001", aac001);
      parameters.put("aae140", aae140);
       reportFile = new File(this.getServletContext().getRealPath("/report/grjfxx_noaae114.jasper"));  

    }
      
      
      try {             
                jasperPrint =JasperFillManager.fillReport(reportFile.getPath(),parameters,db.getConnection());
                //JasperPrintManager.printReport(jasperPrint, false);//2008-08
            }catch(JRException jre){
             jre.printStackTrace();
            }catch(NullPointerException nec){
             nec.getLocalizedMessage();
             nec.printStackTrace();
             nec.toString();
            }
             catch (Exception ee) { 
               ee.printStackTrace(); 
            } 
                response.setContentType("application/octet-stream");  
                ServletOutputStream ouputStream = response.getOutputStream(); 
                ObjectOutputStream oos = new ObjectOutputStream(ouputStream); 
                oos.writeObject(jasperPrint);//
                oos.flush();  
                oos.close();             
                ouputStream.flush(); 
                ouputStream.close();  

    }
      

  2.   

    前台:
    function getPrint(){
    var aae140 = document.getElementById("aae140").options[document.getElementById("aae140").selectedIndex].value;
    var aae114 = document.getElementById("aae114").options[document.getElementById("aae114").selectedIndex].value;
    var url = "http://localhost:8088/xztouch/grxx/printServlet?aac001=<%=aac001 %>&aae114="+aae114+"&aae140="+aae140;  
    document.write('<APPLET CODE="com.neusoft.lzsearch.applet.PrinterApplet.class" CODEBASE = "." ARCHIVE = "commons-logging-1.1.jar,commons-collections-3.2.1.jar,reportprint.jar,jasperreports-applet-3.7.6.jar,jasperreports-3.7.6.jar" WIDTH = "100%" HEIGHT = "100%">');   
    document.write('<PARAM NAME = "type" VALUE="application/x-java-applet;version=1.5.0_08">');   
    document.write('<PARAM NAME = "scriptable" VALUE="false">');   
    document.write('<PARAM NAME = "REPORT_URL" VALUE ="'+url+'">');   
    document.write('</APPLET>');   
       
    }
      

  3.   

    web.xml:
    <servlet>
      <servlet-name>PrintServlet</servlet-name> 
      <servlet-class>com.neusoft.lzsearch.servlet.Print</servlet-class> 
    </servlet>
    <servlet-mapping>
      <servlet-name>PrintServlet</servlet-name> 
      <url-pattern>/grxx/printServlet</url-pattern> 
    </servlet-mapping>
      

  4.   

    静态初始化程序中发生意外异常的信号。抛出 ExceptionInInitializerError 表明在计算静态初始值或静态变量的初始值期间发生异常。
      

  5.   

    JRLoader.java:60,是不是加载了写配置文件,而你漏了。