Crystal Reports CRS方式Web开发

本文提供了一种通过Java代码连接CrystalReportServer的方法,并展示了如何登录服务器获取并展示报表的具体步骤。

关于水晶报表以前一直都是用.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地址和主机名。我想解决办法应该不是这样的。
 

Crystal Reports 9.2 中文版(水晶报表) 下载,,软件版本:9.2.0.448不过现已出了Crystal Reports Professional v9.2.2.634 (c) Crystal Decisions,有足够的空间就提供.这是一个很不错的报表控件,我相信很多朋友都听说过吧!Crystal Reports 用于处理数据库,帮助用户分析和解释重要信息。使用 Crystal Reports 可以方便地创建简单报表,同时它也提供了创建复杂或专用的报表所需的整套工具。 创建所能想象的任何报表 Crystal Reports几乎可以从任何数据源生成您需要的报表。内置报表专家在您生成报表和完成一般的报表任务过程中,会一步一步地指导您进行操作。报表专家通过公式、交叉表、子报表和设置条件格式帮助表现数据的实际意义,揭示可能被隐藏掉的重要关系。如果文字和数字确实不够充分,则用地理地图和图形进行形象的信息交流。 将报表扩展到 Web Crystal Reports 的灵活性并未停留在创建报表这一功能上 ?您可以用各种各样的格式发布报表,包括用 Microsoft 的 Word 和 Excel 发布、通过电子邮件甚至 Web 发布。高级的 Web 报表功能允许工作组中的其他成员在他们自己的 Web 浏览器中查看或更新共享报表。 将报表并入应用程序通过将 Crystal Reports报表处理功能整合到自己的数据库应用程序中,应用程序和 Web 开发人员可以节省开发时间并满足用户的需求。Crystal Reports 支持大多数流行的开发语言,可以方便地在任何应用程序中添加报表。 不论您是 IT 行业的站点管理员,还是营销推广经理,也无论您是金融业的数据库管理员还是 CEO,Crystal Reports 都堪称是一个功能强大的工具,它可以帮助每一个人分析、解释重要信息。感谢 revenant 上传!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值