隨筆-0  評(píng)論-3  文章-28  trackbacks-0

          在(一)中的配置保持不變,前一篇是用crviewer標(biāo)簽來(lái)實(shí)現(xiàn)jsp顯示水晶報(bào)表的

          這篇文章教你如何自己寫代碼來(lái)享受水晶報(bào)表的

          report_source.jsp

          <%@page contentType="text/html"%>
          <%@page pageEncoding="UTF-8"%>

          <%//Crystal Java Reporting Component (JRC) imports.%>
          <%-- jrcerom.jar--%>
          <%@page import="com.crystaldecisions.reports.sdk.*" %>
          <%-- rascore.jar--%>
          <%@page import="com.crystaldecisions.sdk.occa.report.lib.*" %>

          <%
          //水晶報(bào)表的位置
          final String REPORT_NAME = "view_report.rpt";
          %>

          <%

          try ...{    
              
          //打開報(bào)表
               ReportClientDocument reportClientDoc = new ReportClientDocument();
               reportClientDoc.open(REPORT_NAME,
          0);

              
          //把報(bào)表源放進(jìn)session,傳遞到報(bào)表顯示頁(yè)面
               session.setAttribute("reportSource", reportClientDoc.getReportSource());
                  
              
          //轉(zhuǎn)到報(bào)表顯示頁(yè)面
               response.sendRedirect("CrystalReportViewer.jsp");
                  
          }

          catch(ReportSDKException ex) ...{    
               out.println(ex);
          }

          catch(Exception ex) ...{
               out.println(ex);            
          }

          %>

          上面的可以封裝到j(luò)avabean里面

          reportClientDoc.getDatabaseController().logon(USERNAME, PASSWORD);

          設(shè)置數(shù)據(jù)庫(kù)的登陸用戶,如果瀏覽這個(gè)報(bào)表的用戶需要設(shè)置不同的權(quán)限的話,那就需要設(shè)置上面這個(gè)了

          CrystalReportViewer.jsp

          <%@page contentType="text/html"%>
          <%@page pageEncoding="UTF-8"%>

          <%//Crystal Report Viewer imports.%>
          <%-- webreporting.jar--%>
          <%@page import="com.crystaldecisions.report.web.viewer.*"%>
          <%-- rascore.jar--%>
          <%@page import="com.crystaldecisions.reports.sdk.*" %>

          <%
          //建立一個(gè)viewer對(duì)象實(shí)例,并設(shè)置
          CrystalReportViewer viewer = new CrystalReportViewer();
          viewer.setOwnPage(
          true);
          viewer.setOwnForm(
          true);
          viewer.setPrintMode(CrPrintMode.ACTIVEX);

          //從session中取報(bào)表源
          Object reportSource = session.getAttribute("reportSource");
          viewer.setReportSource(reportSource);

          //顯示水晶報(bào)表
          viewer.processHttpRequest(request, response,this. getServletConfig().getServletContext(), null);

          %>

          第二種方法直接用一個(gè)頁(yè)面

          CrystalReportViewer.jsp

          <%@page contentType="text/html"%>
          <%@page pageEncoding="UTF-8"%>

          <%//Crystal Java Reporting Component (JRC) imports.%>
          <%-- jrcerom.jar--%>
          <%@page import="com.crystaldecisions.reports.sdk.*" %>
          <%-- rascore.jar--%>
          <%@page import="com.crystaldecisions.sdk.occa.report.lib.*" %>
          <%-- webreporting.jar--%>
          <%@page import="com.crystaldecisions.report.web.viewer.*"%>

          <%
          //水晶報(bào)表的位置
          final String REPORT_NAME = "view_report.rpt";
          %>

          <%
          try ......{    
              
          //打開報(bào)表
               ReportClientDocument reportClientDoc = new ReportClientDocument();
               reportClientDoc.open(REPORT_NAME,
          0);

              
          //把報(bào)表源放進(jìn)session,傳遞到報(bào)表顯示頁(yè)面
              
          //session.setAttribute("reportSource", reportClientDoc.getReportSource());

              
          //建立一個(gè)viewer對(duì)象實(shí)例,并設(shè)置
               CrystalReportViewer viewer = new CrystalReportViewer();
               viewer.setOwnPage(
          true);
               viewer.setOwnForm(
          true);
               viewer.setPrintMode(CrPrintMode.ACTIVEX);

              
          //從session中取報(bào)表源
              
          //Object reportSource = session.getAttribute("reportSource");
              
          //viewer.setReportSource(reportSource);
               viewer.setReportSource(reportClientDoc.getReportSource());

              
          //顯示水晶報(bào)表
                viewer.processHttpRequest(request, response,this. getServletConfig().getServletContext(), null);

                  
              
          //轉(zhuǎn)到報(bào)表顯示頁(yè)面
              
          //response.sendRedirect("CrystalReportViewer.jsp");      
          }

          catch(ReportSDKException ex) ......{    
               out.println(ex);
          }

          catch(Exception ex) ......{
               out.println(ex);            
          }

          %>

          個(gè)人感覺第一種方法好,報(bào)表源跟顯示分開,安全,重用方便

          posted on 2008-03-28 16:47 閱讀(584) 評(píng)論(1)  編輯  收藏 所屬分類: java基礎(chǔ)

          評(píng)論:
          # re: 使用eclipse在jsp上顯示水晶報(bào)表(二)后臺(tái)代碼例子(轉(zhuǎn)載) 2011-03-31 11:58 | 劉文
          主站蜘蛛池模板: 焦作市| 梅州市| 台山市| 兴安盟| 丽江市| 睢宁县| 新余市| 小金县| 营山县| 萨迦县| 中江县| 岗巴县| 儋州市| 武山县| 楚雄市| 东明县| 克东县| 江达县| 荣成市| 保德县| 青海省| 桂阳县| 高平市| 合水县| 泉州市| 健康| 建瓯市| 剑川县| 房山区| 乐清市| 大埔县| 庆阳市| 平遥县| 霍林郭勒市| 武安市| 宿迁市| 赤壁市| 樟树市| 厦门市| 丹江口市| 常德市|