【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的缘故,程序对中文字段名支持得不错,没想到报表这里还是过不了关,将其字段名改名为英文字段名,再测试一下,就完全通过了。