安装 Crystal Report 9.2 后产生的问题及解决方案

一、引言

在.NET 里,DLL Hell 问题被解决——包含元数据的,具有自描述性的程序集及其 XCopy 部署!
但是,又似乎带来了新的问题——.NET 程序升级、迁移问题……
升级不再只是简单安装,有工作不得不做了……

 二、概念与原理

1、各种 Crystal Reports 程序的“程序集版本”……

Crystal Reports for Visual Studio .NET 2002
Crystal Reports 管理组件的“程序集版本”为 9.1.3300。

Crystal Reports for Visual Studio .NET 2003 的程序
Crystal Reports 管理组件的“程序集版本”为 9.1.5000.0。

Crystal Reports 9 的程序(仅限于 Visual Studio 2002)
Crystal Reports 管理组件的“文件版本”为 9.2.9466.x。

Crystal Reports 9.2 的程序(与 Visual Studio 2002 和 2003)
Crystal Reports 管理组件的“文件版本”为 9.2.9500.x。

2、Crystal Report Viewer

VS.NET 里的 Crystal Report Viewer 版本是 9.1.3300.0,
Crystal Report 9.2 里的 Crystal Report Viewer 版本是 9.2.3300.0
为窗体添加 Crystal Report Viewer 后,会在 aspx 文件里增加以下代码,缺一不可。
代码(1)<%@ Register TagPrefix=\"cr\" Namespace=\"CrystalDecisions.Web\" Assembly=\"CrystalDecisions.Web, Version=9.1.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304\" %>
是为了引入命名空间 CrystalDecisions.Web。
代码(2)<CR:CrystalReportViewer id=\"CrystalReportViewer1\" runat=\"server\" EnableDrillDown=\"False\" DisplayGroupTree=\"False\" Height=\"50px\" Width=\"350px\"></CR:CrystalReportViewer>
是表示 CrystalReportViewer 控件的标签。

三、问题

1、编译器错误信息: </b>BC30560: “CrystalReportViewer”在命名空间“CrystalDecisions.Web”中不明确。

 问题分析:
在“设计视图”删除 Crystal Report Viewer 后,代码(1)仍然存在,如果此时再次添加新版本的 Crystal Report Viewer,会导致出现两个不同的代码(1):
<%@ Register TagPrefix=\"cr1\" Namespace=\"CrystalDecisions.Web\" Assembly=\"CrystalDecisions.Web, Version=9.2.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304\" %>
<%@ Page language=\"vb\" Codebehind=\"Analysis.aspx.vb\" AutoEventWireup=\"false\" Inherits=\"Research_VB.Analysis\" %>
<%@ Register TagPrefix=\"cr\" Namespace=\"CrystalDecisions.Web\" Assembly=\"CrystalDecisions.Web, Version=9.1.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304\" %>

解决方案:
把 Crystal Report Viewer 和所有代码(1)删除,重新添加 Crystal Report Viewer。

2、复制 Crystal Report Viewer 时,显示“控件创建错误”。

问题分析:
复制 Crystal Report Viewer 时,代码(1)不会被复制。

解决方案:
手工复制代码(1)。

3、创建 Crystal Report Viewer 时,显示“控件创建错误”。

 问题分析:
如果不是残存代码(1),就是匪夷所思……

解决方案:
(1)先在“设计视图”删除 Crystal Report Viewer 控件;
(2)再到“HTML 视图”删除代码(1)
(3)创建 Crystal Report Viewer ;
如果显示“控件创建错误”,则切换到“HTML”视图,再切换会“设计”视图,自动恢复!!!

4、分析器错误信息: 基类包括字段“CrystalReportViewer1”,但其类型 (CrystalDecisions.Web.CrystalReportViewer) 与控件 (CrystalDecisions.Web.CrystalReportViewer) 的类型不兼容。

 问题分析
代码(1)不是当前 Crystal Report Viewer 的版本

解决方案:
把 Crystal Report Viewer 和所有代码(1)删除,重新添加 Crystal Report Viewer。

5、分析器错误信息: 找到的名为“CrystalDecisions.Shared”的程序集清单定义与程序集引用不匹配。
源文件: E:webVenditionSystemweb.config    行: 15
程序集加载跟踪: 下列信息有助于确定程序集“CrystalDecisions.Shared”无法加载的原因

 问题分析
程序集 CrystalDecisions.Shared 在 web.config 里的程序集清单定义是 CR FOR VS.NET 版本的,而项目中引用的是 CR 9.X 版本的……

解决方案一:
新建一个解决方案,在窗体里添加 Crystal Report Viewer,会自动在 web.config 中生成新版本的程序集清单定义,然后把这个 web.config 复制过来……
解决方案二:
修改 web.config 里的旧版本的程序集清单定义:
<add assembly=\"CrystalDecisions.Shared, Version=9.1.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304\"/>
把 Version=9.1.3300.0 改成 Version=9.2.3300.0。

总结:其它 CrystalDecisions 程序集引用的冲突问题如:CrystalDecisions.CrystalReports.Engine,解决方案同上。

6、问题:无效的报表源

 问题分析:
ReportDocument、CrystalReportViewer 组件和 CrystalDecisions 程序集的版本不一致:

解决方案:
(1)删除所有的 CrystalDecisions 程序集引用;
(2)删除所有的ReportDocument、CrystalReportViewer 组件;
(3)按照2、修改 Visual Studio.NET 的工具箱设置;
(4)重新添加组件,自动生成新引用。

7、如果你用的是 VS.NET 2003……
问题:就是不行。 升级后没有拖放控件没有代码(1)!!!

问题分析:
如果你用的是 VS.NET 2003,则 Crystal Reports 9 (版本 9.2.0.x) 不能正确运行,需要升级到 CR 9 (版本 9.2.2.x). 
具体问题如下:
- 添加新报表到项目,却没有生成相应的报表类文件
- 添加新报表或者报表查看器(viewer)到项目,却没有自动添加必需的引用
- 不能创建强类型报表(strongly-typed report)的实例

解决方案:
升级到 CR 9 (版本 9.2.2.x). 

8、问题:在 web.config 中新建一个工程时没有<assemblies><add assembly=\"CrystalDecisions.CrystalReports.Engine, Version=9.2.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304\"/>
我手工添加后出现配置错误!!!

解决方案:
新建一个解决方案,添加 Crystal Report 文件和 Crystal Report Viewer,然后用它的 Web.config 覆盖原来的程序……

 

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 上传!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值