中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 临时文章
VS.NET下水晶报表分发时的问题及解决
作者:未知 时间:2005-07-27 21:45 出处:CSDN 责编:chinaitpower
              摘要:VS.NET下水晶报表分发时的问题及解决

一、载入报表时报错

 

 

 

 

  千辛万苦,总算作完了程序,报表在开发机器上测试一切正常,做安装项目,生成后兴冲冲的拿到客户机上去试验,晕,载入报表时却报错(如图1),怎么会???仔细检查了程序代码,实在没有任何错误,看来问题出在报表发布上了。

 

 

 

 


1

 

 

 

 

  经过一番苦苦寻觅,总算找到了问题所在。原来VS.NET环境下发布项目时水晶报表需要包含以下三种组件:
  报表(*.rpt
  模块(*.msm
  运行库(*.msm

  这些模块文件是在C:\Program Files\Common Files\Merge Modules\ 目录里面,别急,让我慢慢跟您说。
1
、报表(*.rpt
  用户编程时创建的水晶报表文件,这个很简单,你不会找不到它吧,哈哈。
2
、模块(*.msm
  Managed.msm
  该模块包含了CR for VS .NET的管理模块,如
  CrystalDecisionsCrystalReports.Engine.DLLCrystalDecisions.Web.DLL, CrystalDecisions.Windows.Forms.DLL.……
  Managed_chs.msm是该模块的中文版语言支持。
  Database_Access.msm
  该模块包含了数据库的驱动、与不同数据库的联结、报表导出为RTF HTML格式的文档和图表组件。
Database_Access_chs.msm
是此模块的中文版语言支持。
  Regwiz.msm
  注册信息模块,非常重要,必需在这个模块输入水晶报表的注册序列号,如果不填,编译的时候就无法通过,如图2所示。我使用的VS.NET2003自带的CrystalReportLicense Key是“AP5GKS0000GDE100DS”。


2

 

 

 

 

3 ..运行库(*.msm
  如果报表文件使用了ADO.NETdataset数据集对象,那么VC_CRT.msm VC_STL.msm 模块也必须包含在安装工程中。而且这两个模块的文件安装属性的"Module Retargetable Folder"项必须修改成为系统目录,如图3所示。

 

 

 

 


3

 

 

 

 

  现在,我们知道答案了,在VS.NET安装工程中,系统检测出来的依赖项只有dotNETFXRedist_x86_chs.msm Managed.msm这两个模块,其他的模块我们需要手动加入。
  1、在解决方案资源管理器里,右键单击安装项目选择"添加"-"合并模块(M",如图4所示。

 

 

 

 


4

 

 

 

 

  2、在"添加模块"对话窗体,选择 Managed_chs.msm Database_Access, Database_Access_chs, regwizVC_CRT.msm VC_STL.msm 模块,如图5所示。

 

 

 

 


5

 

 

 

 

  3、重新生成安装项目,没问题,只是生成的安装程序一下子大了七、八兆。

 

 

 

 

二、系统注册

 

 

 

 

  报表在部分Win98的客户端可以载入,在部分Win98的客户端载入报表时却提示"Load Report Failed"(如图6),可恶,居然还出错,怎么回事?

 

 

 

 


6

 

 

 

 

  原来,这是因为水晶报表运行时所需的CRQE.dll在客户端的系统注册不正确,而原因又是ATL.dll 的版本不对(Windows 98/ME下的正确版本号应为3.0.8449)。解决办法有两条:
  1 在客户端安装IE6.0,难怪有的客户端运行正常。
  2 ATL.msm模块添加到安装工程,ATL.msmVisual Studio installer 1.1的一部分,可以去微软的网站http://msdn.microsoft.com/vstudio/downloads/vsi/ 免费下载, 添加办法同前。

 

 

 

 

三、语言的支持

 

 

 

 

  报表在Win2000的客户端一切正常,在Win98的客户端运行提示"该字段名未知"(如图7),不会要客户端都装2000吧,要求也太高了?

 

 

 

 


7

 

 

 

 

  仔细分析,原来是报表使用到的sql server数据库中的字段名为中文的缘故,也许是.net的缘故,程序对中文字段名支持得不错,没想到报表这里还是过不了关,将其字段名改名为英文字段名,再测试就一切ok了。

 

 

 

 

  好了,顺利过关!希望本文对您处理VS.NET下水晶报表发布问题时能有所帮助。

 

 

 

 

 


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有