技术开发 频道

VS.NET下水晶报表分发时的问题及解决

【IT168 技术文档】

一、载入报表时报错

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

VS.NET环境下发布项目时水晶报表需要包含以下三种组件:

  报表(*.rpt)
  模块(*.msm)
  运行库(*.msm)

  这些模块文件是在C:\Program Files\Common Files\Merge Modules\ 目录里面。

  1、报表(*.rpt)

  用户编程时创建的水晶报表文件。

  2、模块(*.msm)

  Managed.msm

  该模块包含了CR for VS .NET的管理模块,如CrystalDecisions、CrystalReports.Engine.DLL、CrystalDecisions.Web.DLL和CrystalDecisions.Windows.Forms.DLL.……

  Managed_chs.msm是该模块的中文版语言支持。

  Database_Access.msm

  该模块包含了数据库的驱动、与不同数据库的联结、报表导出为RTF 和 HTML格式的文档和图表组件。
Database_Access_chs.msm 是此模块的中文版语言支持。

  Regwiz.msm

  注册信息模块,非常重要,必需在这个模块输入水晶报表的注册序列号,如果不填,编译的时候就无法通过.

二、系统注册

  报表在部分Win98的客户端可以载入,在部分Win98的客户端载入报表时却提示"Load Report Failed"。

  原来,这是因为水晶报表运行时所需的CRQE.dll在客户端的系统注册不正确,而原因又是ATL.dll 的版本不对(Windows 98/ME下的正确版本号应为3.0.8449)。解决办法有两条:

  1、 在客户端安装IE6.0,这也是部分客户端运行正常的原因,之前安装好了IE6.0。

  2、 将ATL.msm模块添加到安装工程,ATL.msm是Visual Studio installer 1.1的一部分,可以去微软的网站http://msdn.microsoft.com/vstudio/downloads/vsi/免费下载,添加办法同前。

三、语言的支持

  报表在Win2000的客户端一切正常,在Win98的客户端运行提示“该字段名未知”。
  仔细分析,原来是报表使用到的sql server数据库中的字段名为中文的缘故,也许是.NET的缘故,程序对中文字段名支持得不错,没想到报表这里还是过不了关,将其字段名改名为英文字段名,再测试一下,就完全通过了。

0
相关文章