水晶报表版本是10.2.3600.0,是vs2005自带的。功能原来正常,服务器重做后不能打印,但是导出功能正常。

研究的大概情况:

1、水晶报表的web相关代码位于\aspnet_client\system_web\2_0_50727\CrystalReportWebFormViewer3\html下,但无法找到相应的控件。

2、客户端打印必须要求客户端安装Activex,服务器设置为Activex模式。因为以前正常,问题肯定在客户端。

参考:

水晶报表WEB打印问题

如何在服务器上部署水晶报表

打印控件自动安装

Asp.Net中使用水晶报表

解决方法:

1、安装两个水晶报表安装文件CRRedist2005_x86.msi和CRREdist2005_x86_chs.msi,无效

2、重新在服务器上安装vs2005,无效

3、把aspnet_client复制到多个位置,无效

4、寻找PrintCode控件的安装处理代码,在aspnet_client下的代码中没有找到

5、从网上下载一个PrintCode.cab,但无法直接安装。比对安装信息和aspnet_client下js中的clsid两者相同,都是BAEE131D-290A-4541-A50A-8936F159563A

于是手动安装,regsvr32注册,问题解决。

水晶报表WEB方式下不打印的问题-LMLPHP

手工注册PrintControl.dll

05-07 15:10