• Crystal Reports CRS方式Web开发


    关于水晶报表以前一直都是用.NET来开发,使用的是RDC方式,简单易用。现在在做项目的时候需要和Crystal Report Server进行连接,登录服务器取得报表,然后显示,Google和baidu,都找不到可参考的完整的例子,只能根据一些零碎的代码,拼凑+自己以前开发水晶报表的经验。
    1.用惯了Struts,新建一个Action,在Action里面添加以下代码:
    String reportName = "<你的报表名称>";
     // TODO Auto-generated method stub
       ISessionMgr ceSessionMgr = CrystalEnterprise.getSessionMgr();
       IEnterpriseSession ceSession = ceSessionMgr.logon("<CRS的用户名>","<CRS的密码>","〈CRS的主机名〉","<用户认证的方式,默认为secEnterprise>");
       IInfoStore ceInfoStore = (IInfoStore)ceSession.getService("","InfoStore");
       IInfoObjects ceReports = ceInfoStore.query("Select SI_ID,SI_NAME From CI_INFOOBJECTS Where SI_NAME = '" + reportName + "'");
       if(ceReports.size() == 0)
       {
        //
        return null;
       }
       IInfoObject reportObject = (IInfoObject)ceReports.get(0);
       IReportSourceFactory factoryPS = (IReportSourceFactory) ceSession.getService("PSReportFactory");
       IReportSource rptSrc = factoryPS.openReportSource(reportObject,Locale.ENGLISH);

       CrystalReportViewer viewer = new CrystalReportViewer();
       viewer.setEnterpriseLogon(ceSession);
       viewer.setName("crystal_report_viewer");
       viewer.setOwnPage(true);
       viewer.setReportSource(rptSrc);
       viewer.showFirstPage();
       
       HttpSession session = request.getSession();
       session.setAttribute("crViewer",viewer);
       return mapping.findForward("result");

    2.跳转result是跳到一个viewer.jsp的页面,该页面也很简单
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>

    <%//Crystal Report Viewer imports.%>
    <%@page import="com.crystaldecisions.report.web.viewer.*"%>

    <%

    //Refer to the Viewers SDK in the Java Developer Documentation for more information on using the CrystalReportViewer
    //API.

    CrystalReportViewer viewer = (CrystalReportViewer)session.getAttribute("crViewer");
    //Render the report.
    viewer.processHttpRequest(request, response, getServletConfig().getServletContext(), null);
    %>

    OK,当然,前提是你需要安装好Crystal Report Server。在使用CRS的时候发现如果是远程登录使用IP地址连不上服务器,使用主机名也认不出来。我的解决办法是在本地的windows目录下system32/drivers/etc/的hosts文件里面添加服务器的IP地址和主机名。我想解决办法应该不是这样的。

  • 相关阅读:
    字体图标的制作
    vs code 本地调试配置
    瀑布流
    web组件化开发第一天
    超时调用和间歇调用
    递归 闭包
    继承
    面向对象的程序设计
    function类型
    Date类型
  • 原文地址:https://www.cnblogs.com/zjblue/p/474116.html
Copyright © 2020-2023  润新知