水晶报表printmode 的pdf改为ActiveX后就是直接打印报表,但是始终出不来,原来还要下载个ActiveX,但是好象官方的下载不下来!最后还是用讯雷下下来放在服务器上.
首先下载printcontrol.cab从:http://support.businessobjects.com/CRforVS2005/PrintControl.cab#
方法一:
一个自己想的方法,但是安装速度比较慢,直接解压PrintControl.cab后把PrintControl.dll添加到引用,这样不需要<add key="url" value="http://localhost/PrintControl.cab" />,这里好象要绝对路径.
方法二:
然后在web.config中插入:
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="printControl" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<printControl>
<add key="url" value="http://localhost/PrintControl.cab" />
</printControl>
</crystalReports>
</businessObjects>
所以完全可以将他的CAB下载回来放到本地服务器,然后写下面代码放到一个单独的页面放用户先安好。
先下载http://support.businessobjects.com/CRforVS2005/PrintControl.cab,放到自已的服务器上。
<object id="CrystalPrintControl" classid="CLSID:BAEE131D-290A-4541-A50A-8936F159563A" codebase="http://127.0.0.1/rpt/PrintControl.cab" #Version="10,2,0,1078" viewastext></object>
#Version是版本号,如果你是其他的版本将版本号修改一下即可。
接着是加载报表失败的问题,因为我新建立一个空项目是正常的,代码是肯定没有问题,所以问题一定在WEB.CONFIG配制文件里,因为我的环境比较复杂,所以WEB.CONFIG是很多配制,就一个一个拆吧,拆到<identity impersonate="true"/>时,也,正常了,原来是不能将他设为true,将他改为<identity impersonate="false"/>就正常了。
调试到一段落,再来后面还会遇到很多麻烦,再一个一个去解决吧。