使用eclipse在jsp上显示水晶报表(二)后台代码例子

 在(一)中的配置保持不变,前一篇是用crviewer标签来实现jsp显示水晶报表的

这篇文章教你如何自己写代码来享受水晶报表的

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.*" %>

<% //水晶报表的位置

    final String REPORT_NAME = "view_report.rpt";

%>

<%

    try {

//打开报表

        ReportClientDocument reportClientDoc = new ReportClientDocument();

        reportClientDoc.open(REPORT_NAME, 0);

        //把报表源放进session,传递到报表显示页面     

        session.setAttribute("reportSource", reportClientDoc.getReportSource());

        //转到报表显示页面    

        response.sendRedirect("CrystalReportViewer.jsp");

    } catch(ReportSDKException ex) {

        out.println(ex);

    } catch(Exception ex) {

        out.println(ex);

    }

%>

上面的可以封装到javabean里面

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

设置数据库的登陆用户,如果浏览这个报表的用户需要设置不同的权限的话,那就需要设置上面这个了

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.*" %>

<%

    //建立一个viewer对象实例,并设置

    CrystalReportViewer viewer = new CrystalReportViewer();

    viewer.setOwnPage(true); viewer.setOwnForm(true);

    viewer.setPrintMode(CrPrintMode.ACTIVEX);

    //从session中取报表源

    Object reportSource = session.getAttribute("reportSource");

    viewer.setReportSource(reportSource);

    //显示水晶报表 

    viewer.processHttpRequest(request, response,this. getServletConfig().getServletContext(), null);

    //释放viewer对象              

    viewer.dispose();

    viewer=   null;

%>

 第二种方法直接用一个页面

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.*"%>

<%

    //水晶报表的位置

    final String REPORT_NAME = "view_report.rpt";

%>

<% try {

        //打开报表

        ReportClientDocument reportClientDoc = new ReportClientDocument();

        reportClientDoc.open(REPORT_NAME, 0);

        //把报表源放进session,传递到报表显示页面

        //session.setAttribute("reportSource", reportClientDoc.getReportSource());     

        //建立一个viewer对象实例,并设置     

        CrystalReportViewer viewer = new CrystalReportViewer();

        viewer.setOwnPage(true);

        viewer.setOwnForm(true);

        viewer.setPrintMode(CrPrintMode.ACTIVEX);

        //从session中取报表源   

        //Object reportSource = session.getAttribute("reportSource");    

        //viewer.setReportSource(reportSource);    

        viewer.setReportSource(reportClientDoc.getReportSource());

        //显示水晶报表      

        viewer.processHttpRequest(request, response,this. getServletConfig().getServletContext(), null);

        //释放viewer对象                  

        viewer.dispose();

        viewer=   null;

        //转到报表显示页面     

        //response.sendRedirect("CrystalReportViewer.jsp");     

    } catch(ReportSDKException ex) {

        out.println(ex);

    } catch(Exception ex) {

        out.println(ex);

    }

%>

个人感觉第一种方法好,报表源跟显示分开,安全,重用方便

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值