VS2008 水晶报表在没有连接互联网时的打印问题!十万火急...

ivanho 2009-11-03 03:28:33
如题!!!

问题是这样的,我在公司(公司的机器是有连入互联网的)编好水晶报表代码,用的是ActiveX模式,在本机运行,第一次运行提示安装ActiveX控件,安装后,一切正常,能正常打印.

但拿到客户那边运行,一闪而过,连提示安装ActiveX控件也没有,再点"打印图标"也是没反应.后来想想区别,也就是一个上互联网,一个不上,但代码在公司所有的机器运行都正常.

为了验证区别,细心研究了公司里的机器,ActiveX控件到底产生了什么文件,而且是放在那,后来发现,在C分区的WINDOWS文件夹里的"Downloaded Program Files"存放着两个文件.就是"PrintControl.inf"和"PrintControl.dll".当我删了它们,运行报表,立刻提示我再安装ActiveX控件,我安装后,又能正常使用.而且"PrintControl.inf"和"PrintControl.dll".重新安装在里边.由此得知,这两个文件是控制我的报表打印的,

为了还原客户的故障,我先将这两个文件删除,再拔下网线.得到的结果,就跟客户那边一样.

问题的症结是找到了,但懂怎么解决,客户那边是无论如何也不能上网的,望各位CSDN的大侠们救救小弟.

我补充一下,我从网上看过别人的一些思路,试过在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>
<appSettings>
<add key="CrystalImageCleaner-AutoStart" value="true"/>
<add key="CrystalImageCleaner-Sleep" value="60000"/>
<add key="CrystalImageCleaner-Age" value="120000"/>
</appSettings>

在HTML里加了相应的</object>,还下载了PrintControl.cab,在断网的情况下,没错,能提示我安装ActiveX控件,而且"PrintControl.inf"和"PrintControl.dll".也加载到了"Downloaded Program Files".但奇怪的是,程序每次运行都提示我安装这个控件,但安装完再按打印,它却不打印.后来我细心的看了看加载"PrintControl.inf"和"PrintControl.dll".的日期和时间跟我连入互联网时安装ActiveX控件加载的不同,前者是2005.09.18.23:34,后者是:2008.08.27.02:57,这倒提醒我是不是版本的问题,我现在又在尝试用VS2005做开发,但代码报错很多,修改很累.还望各位CSDN的大侠们救救小弟,能在VS2008里解决最好.
...全文
403 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qdf0567 2011-03-23
  • 打赏
  • 举报
回复
哥们,真是感谢你啊,我现在也是遇到了这个问题。看到你的答案,非常感谢你啊!!!!!!!我顶!
ivanho 2009-11-12
  • 打赏
  • 举报
回复
问题己解决!方法是:
1.先下载"PrintControl.cab"
http://support.businessobjects.com/CRforVS2005/PrintControl.cab。
2.然后配置好IIS.
3.然后在IIS默认根目录下建一个文件夹.如:TEMP
4.把"PrintControl.cab"放到"TEMP"里边去.
5.然后到"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles\CrystalReportWebFormViewer4\html"这个地址里找到一个叫"crystalprinthost.html"文件.
6.用记事本打开这个文件,找到"objectTag += window.dialogArguments.codebase;"然后将它注释掉.
改为objectTag += "http://本机IP地址/temp/PrintControl.cab";最后保存.

那么问题就会解决了!记得测试时,拔了网线,以验证成功.
qldsrx 2009-11-04
  • 打赏
  • 举报
回复
其实打包一个安装程序到客户端安装就OK了,我自己打包过一个,很简单的。
ivanho 2009-11-04
  • 打赏
  • 举报
回复
UP

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧