在项目C#客户端应用通过hessian访问j2ee服务中,报表需要统一展示,类似于报表系统,及根据报表格式和数据源参数在一个报表展示窗口统一展示,并具有导出、打印等基本功能。打算使用水晶报表来实现,下述为具体细节,遗憾的是经过仔细的分析,不能很好地满足我们的要求,最后通过微软的rdlc来实现。
1. 报表系统设计
1) 整体架构(基于水晶报表)
重点:
·所有报表都集成、转移到报表系统中;
·报表系统最好是基于网页;
2) 具体实现
·利用水晶报表工作制作水晶报表文件(RPT文件);
·将RPT文件,通过发布程序发布到服务器上去;
·给报表授权,只有可浏览和不可浏览2个权限;
·通过IE或C#客户端“报表展示中心”显示报表,期间会再一次验证用户权限。
2. 相应的实现方案
针对上文中提到的系统设计,我们前期做了2种不同实现方案,结果都不能满足我们的要求,或参数传递有问题,或性能、安全有问题。下述为2种实现方案具体内容。
1) 通过Java API调用RAS实现报表的JSP页面浏览,核心代码如下:
CrystalReportViewer viewer = new CrystalReportViewer();
ReportAppSession ra = new ReportAppSession();
ra.createService("com.crystaldecisions.sdk.occa.report.application.ReportClientDocument");
ra.setReportAppServer("localhost");
ra.initialize();
//
ReportClientDocument clientDoc = new ReportClientDocument();
clientDoc.setReportAppServer(ra.getReportAppServer());
clientDoc.open(reportName, OpenReportOptions._openAsReadOnly);
//
viewer.setReportSource(clientDoc.getReportSource());
//
if(session.getAttribute("refresh")==null){
viewer.refresh();
session.setAttribute("refresh","true");
}
viewer.processHttpRequest(request, response,
getServletConfig().getServletContext(), out);
viewer.dispose();
该方案缺点:开发人员不能接管数据库连接,参数处理麻烦,尤其是多个参数、关联参数需要定制JSP页面实现。
2) 通过C# windows Form嵌入CrystalReportViewer实现水晶报表浏览,核心代码如下:
CrystalReportViewer crystalReportViewer1 = new CrystalReportViewer();
ReportDocument document = new ReportDocument();
document.Load(@"d:\Report2p.rpt");
this.crystalReportViewer1.ReportSource = document;
//
该方案缺点:开发人员不能接管数据库连接,rpt文件暴露在客户端有安全风险,crystalReportViewer1控件渲染数据很慢性能不高;
3) 通过C# windows Form嵌入CrystalReportViewer,利用InfoObjects访问CRS2008,没实现(原因是执行到SessionMgr sessionMgr = new SessionMgr();出错,目前处于无解状态).
分享到:
相关推荐
水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表
水晶交叉报表设计视频
水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片
水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例
水晶报表例子水晶报表例子水晶报表例子水晶报表例子水晶报表例子水晶报表例子水晶报表例子
水晶报表 ppt 水晶报表 用户指南水晶报表 ppt 水晶报表 用户指南水晶报表 ppt 水晶报表 用户指南水晶报表 ppt 水晶报表 用户指南
水晶报表设计及其样式水晶报表设计及其样式
制作水晶报表显示制作水晶报表显示制作水晶报表显示
Visual C++源代码 160 如何使用水晶报表向导创建报表Visual C++源代码 160 如何使用水晶报表向导创建报表Visual C++源代码 160 如何使用水晶报表向导创建报表Visual C++源代码 160 如何使用水晶报表向导创建报表...
水晶报表 基于c# 开发 供学习和分享!
水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表
这是关于水晶报表的制作和设计的相关资料。尤其是.NET平台,水晶报表。水晶报表
CrystalDecisions.CrystalReports,水晶报表配置DLL文件,vs2019
水晶报表数字金额转中文大写,用于水晶报表中将数字金额转换为中文大写的金额
水晶报表10的中文设计指南大全. 水晶报表设计 水晶报表开发
水晶报表安装文件及汉化补丁,解决水晶报表客户端错误 水晶报表客户端中文显示
实现将图片动态加载到水晶报表中,解决水晶报表添加图片的问题。
自己完成的一个水晶报表例子程序的源代码,主要实现了在程序中查询数据,并将数据传给水晶报表显示的功能,并且通过参数的方式可以将程序中的信息传递到水晶报表中进行显示。
设置水晶报表的分页,如何设置水晶报表的分页功能