allen
          專注于java ee技術(shù),包括struts,jsf,webwork,spring,hibernate,ibatis
          posts - 7,  comments - 9,  trackbacks - 0

          jasperreport中可以使用List作為數(shù)據(jù)源,使用格式如下.
          List list=this.customerDao.getAllCustomer();? //得到所有客戶
          JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
          ???JasperPrint jasperPrint = JasperFillManager.fillReport(
          ?????reportFilePath, parameters, ds);
          得填充數(shù)據(jù)后,即可輸出顯示到PDF,Excel,Html
          到PDF:
          public byte[] generatePDF(String begCustNo, String endCustNo,
          ???String reportTitle, String reportFilePath) throws DemoException {
          ??// TODO Auto-generated method stub
          ?//begCustNo,endCustNo分別為查詢傳入的開(kāi)始編號(hào),結(jié)束編號(hào).
          ??jdbcCustomerDao = new JdbcCustomerDao();
          ??Map parameters = new HashMap();
          ??parameters.put("ReportTitle", reportTitle);//報(bào)表標(biāo)題
          ??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調(diào)用方法:
          ?<%
          ????
          ???
          ?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,"客戶資料明細(xì)表",filePath);
          ? }else if(type.equals("Excel")){
          ?? bytes=custs.generateExcel(begNo,endNo,"客戶資料明細(xì)表",filePath);
          ? }else
          ???? bytes=custs.generateHtml(begNo,endNo,"客戶資料明細(xì)表",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");
          ?}
          ?

          ?

          ? %>

          posted on 2006-11-12 22:21 robbin163 閱讀(6402) 評(píng)論(6)  編輯  收藏

          FeedBack:
          # re: jasperreport生成html,Excel,PDF報(bào)表,數(shù)據(jù)源使用List
          2007-09-06 10:52 | sss
          你引的包都有那些  回復(fù)  更多評(píng)論
            
          # re: jasperreport生成html,Excel,PDF報(bào)表,數(shù)據(jù)源使用List
          2007-09-06 10:53 | sss
          能不能給完整的代碼?我也在做公司報(bào)表。需要一個(gè)完整的代碼  回復(fù)  更多評(píng)論
            
          # re: jasperreport生成html,Excel,PDF報(bào)表,數(shù)據(jù)源使用List
          2007-09-06 11:19 | sss
          還有你的“jdbcCustomerDao = new JdbcCustomerDao();”
          里面的jdbcCustomerDao 這個(gè)包引不出來(lái)呀!  回復(fù)  更多評(píng)論
            
          # re: jasperreport生成html,Excel,PDF報(bào)表,數(shù)據(jù)源使用List
          2008-05-20 09:36 | sss
          就是個(gè)垃圾!!  回復(fù)  更多評(píng)論
            
          # re: jasperreport生成html,Excel,PDF報(bào)表,數(shù)據(jù)源使用List
          2009-08-21 09:41 | 你傻啊
          你傻啊, 這是你自己定義的連接的連接數(shù)據(jù)庫(kù)的@sss
            回復(fù)  更多評(píng)論
            
          # re: jasperreport生成html,Excel,PDF報(bào)表,數(shù)據(jù)源使用List
          2009-10-28 17:23 | weijiadi
          jdbcCustomerDao 里面有些什么內(nèi)容  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 桂阳县| 砚山县| 青浦区| 日喀则市| 哈巴河县| 建始县| 乐亭县| 临邑县| 镇巴县| 来宾市| 天津市| 六安市| 安国市| 涞源县| 大兴区| 广德县| 阳江市| 广州市| 泾阳县| 乌拉特后旗| 临江市| 大同县| 土默特右旗| 南京市| 巴楚县| 巴南区| 民权县| 塔河县| 鹿泉市| 德保县| 仙游县| 巢湖市| 盐津县| 延寿县| 九龙县| 二连浩特市| 铅山县| 庆城县| 深州市| 德化县| 孙吴县|