<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    本站不再更新,歡迎光臨 java開發技術網
    隨筆-230  評論-230  文章-8  trackbacks-0

    jasperreport中可以使用List作為數據源,使用格式如下.
    List list=this.customerDao.getAllCustomer();  //得到所有客戶
    JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
       JasperPrint jasperPrint = JasperFillManager.fillReport(
         reportFilePath, parameters, ds);
    得填充數據后,即可輸出顯示到PDF,Excel,Html
    到PDF:
    public byte[] generatePDF(String begCustNo, String endCustNo,
       String reportTitle, String reportFilePath) throws DemoException {
      // TODO Auto-generated method stub
     //begCustNo,endCustNo分別為查詢傳入的開始編號,結束編號.
      jdbcCustomerDao = new JdbcCustomerDao();
      Map parameters = new HashMap();
      parameters.put("ReportTitle", reportTitle);//報表標題
      List list = jdbcCustomerDao.getAllCustomer(begCustNo, endCustNo);
       try {
       JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
       JasperPrint jasperPrint = JasperFillManager.fillReport(
         reportFilePath, parameters, ds);   return JasperExportManager.exportReportToPdf(jasperPrint);
      } catch (JRException e) {
       throw new DemoException("Report Export Failed.");
      }
     }
    到Html:
    public byte[] generateHtml(String begCustNo, String endCustNo,
       String reportTitle, String reportFilePath) throws DemoException {
      jdbcCustomerDao = new JdbcCustomerDao();
      Map parameters = new HashMap();
      parameters.put("ReportTitle", reportTitle);
      List list = jdbcCustomerDao.getAllCustomer(begCustNo, endCustNo);
      System.out.println("list size is :" + list.size());
      JRHtmlExporter exporter = new JRHtmlExporter();
      ByteArrayOutputStream oStream = new ByteArrayOutputStream();
      try {
       JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
       JasperPrint jasperPrint = JasperFillManager.fillReport(
         reportFilePath, parameters, ds);
       exporter.setParameter(
         JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,
         Boolean.FALSE);
       exporter
         .setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
       exporter
         .setParameter(JRExporterParameter.CHARACTER_ENCODING, "GBK");
       exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream);
       exporter.exportReport();
       byte[] bytes = oStream.toByteArray();
       return bytes;
      } catch (JRException e) {
       throw new DemoException("Report Export Failed.");
      }
     }
    到Excel:
    public byte[] generateExcel(String begCustNo, String endCustNo,
       String reportTitle, String reportFilePath) throws DemoException {
      jdbcCustomerDao = new JdbcCustomerDao();
      Map parameters = new HashMap();
      parameters.put("ReportTitle", reportTitle);
      List list = jdbcCustomerDao.getAllCustomer(begCustNo, endCustNo);
      System.out.println("list size is :" + list.size());
      JRXlsExporter exporter = new JRXlsExporter(); // Excel
      ByteArrayOutputStream oStream = new ByteArrayOutputStream();
      try {
       JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
       JasperPrint jasperPrint = JasperFillManager.fillReport(
         reportFilePath, parameters, ds);
       exporter
         .setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
       exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream);
       exporter.setParameter(
         JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,
         Boolean.TRUE);
       exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,
         Boolean.FALSE);
       exporter.setParameter(
         JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
         Boolean.FALSE);
       exporter.exportReport();
       byte[] bytes = oStream.toByteArray();
       return bytes;

      } catch (JRException e) {
       throw new DemoException("Report Export Failed.");
      }
     }

    jsp調用方法:
     <%
        
       
     String filePath=getServletContext().getRealPath("/")+"report.jasper"; 

     CustomerServiceImpl  custs=new CustomerServiceImpl();
        byte[] bytes=null;
      String begNo=request.getParameter("beginCustNo");
      String endNo=request.getParameter("endCustNo");
      String type=request.getParameter("type");

      if(type.equals("Pdf")){ 
          bytes= custs.generatePDF(begNo,endNo,"客戶資料明細表",filePath);
      }else if(type.equals("Excel")){
       bytes=custs.generateExcel(begNo,endNo,"客戶資料明細表",filePath);
      }else
         bytes=custs.generateHtml(begNo,endNo,"客戶資料明細表",filePath);


     if(bytes!=null){
      if(type.equals("Pdf")){
             response.setContentType("application/pdf");
      }else if(type.equals("Excel")){
         response.setContentType("application/vnd.ms-excel");
      }else
       response.setContentType("text/html");
        response.setContentLength(bytes.length);
        ServletOutputStream ouputStream = response.getOutputStream();
        ouputStream.write(bytes,0,bytes.length);
        ouputStream.flush();
        ouputStream.close();
     }else
     {
      out.println("error");
     }
     

     

      %>

    ======================================
    servlet 輸出

        public void doGet(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException {
            Connection conn
    =null;
            
    try{
                Class.forName(
    "com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
                conn
    =DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1481;DatabaseName=pdw","sa","123456");
                ServletContext servletContext
    =this.getServletContext();
                Map parameters
    =new HashMap();
                parameters.put(
    "vname","裴德萬");
                File reportfile
    =new File(servletContext.getRealPath("/classes.jasper"));
                System.out.println(reportfile.getPath());
                
    byte[] bytes=JasperRunManager.runReportToPdf(reportfile.getPath(),parameters,conn);
                response.setContentType(
    "application/pdf");
                response.setContentLength(bytes.length);
                ServletOutputStream outputStream
    =response.getOutputStream();
                outputStream.write(bytes,
    0,bytes.length);
                outputStream.flush();
                outputStream.close();
            }
    catch(Exception e){
                e.printStackTrace();
            }
        }
    posted on 2007-11-01 18:19 有貓相伴的日子 閱讀(5187) 評論(4)  編輯  收藏 所屬分類: 報表

    評論:
    # re: jasperreport使用list輸出[未登錄] 2008-07-25 14:06 | winnie
    你好,但是我有個問題請教一下你,就是生成Excel的時候用list作為數據源,如果我list.size=0為什么會生成一個空的Excel呢,連靜態的東西,還有定義的列都沒有!我覺得應該只是沒有統計的數據而已啊!  回復  更多評論
      
    # re: jasperreport使用list輸出 2008-09-08 10:19 | zb
    report.jasper是什么樣的  回復  更多評論
      
    # re: jasperreport使用list輸出[未登錄] 2011-09-28 17:17 |
    List list=this.customerDao.getAllCustomer(); //得到所有客戶
    JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
    JasperPrint jasperPrint = JasperFillManager.fillReport(
    reportFilePath, parameters, ds);
    你確定這些代碼就夠了,能跑通,我反正沒通,報ClassNotFound的Exception  回復  更多評論
      
    # re: jasperreport使用list輸出 2014-07-08 11:28 | villain
    @winnie
    我也有這個問題啊  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 亚洲美国产亚洲AV| 精品亚洲成A人在线观看青青| 免费无码午夜福利片69| 国产成人免费福利网站| 毛片亚洲AV无码精品国产午夜| 成年女人毛片免费播放人| 亚洲日本成本人观看| 免费观看a级毛片| 国产成人亚洲综合无| 亚洲国产一成久久精品国产成人综合| 四虎国产精品成人免费久久| 亚洲国产精品无码久久青草| 中文字幕在线免费看| 亚洲日本一区二区三区| 无码人妻精品中文字幕免费东京热| 亚洲婷婷第一狠人综合精品| 国内自产少妇自拍区免费| 黄页网站在线免费观看| 在线观看亚洲成人| 69视频免费在线观看| 亚洲熟妇无码一区二区三区 | 全黄A免费一级毛片| 中文字幕不卡亚洲| 亚欧免费视频一区二区三区| 亚洲妇女熟BBW| 亚洲欧洲日本在线| 99久久国产免费中文无字幕| 中文字幕乱码亚洲无线三区| 亚洲午夜福利精品久久| 一区二区三区福利视频免费观看| 久久夜色精品国产噜噜亚洲a| 婷婷综合缴情亚洲狠狠尤物| 永久在线观看免费视频| 亚洲中文字幕无码中文| 亚洲综合无码AV一区二区| 黄色网址免费观看| www在线观看免费视频| 亚洲精品成人图区| 亚洲伦乱亚洲h视频| 国产91免费视频| 一区二区三区免费精品视频|