关于ActiveReport使用ActivexViewer输出时,客户端不会提示下载控件的问题.

今天QA测试报表的时候发现,所有ActiveReport做的报表都显示一个红色的×,而完全不提示要下载控件.

我在自己的机器上看报表是没有问题,因为我已经安装了. 但是, 为什么放到服务器上面就不提示呢?

首先我想到的是, 服务器没有配置HttpHandler. 所以我先按照步骤配置好. 这里要注意的是, IIS5跟IIS6是有区别的. 具体如下:
IIS5只需要对整个web site配置handler就可以,这个配置对于这个web site下面的所有站点都是有效的.
IIS6不同,需要对没有虚拟路径配置,各个路径是独立的. 不受web site的整体配置影响.

配置好之后, 发现问题依旧.

于是我查看我的C:/WINNT/Downloaded Program Files/目录下面那些已经安装了的组件, 竟然发现Active Report Viewer2的CodeBase不是我的Application的路径. 而是我之前建了另外一个站点的路径. 于是我手动删除了那个组件. 然后run我的application,这时候,报表既不显示也不提示了,跟其他机器浏览的一样.

那到底是什么原因呢?

我决定研究一下我之前建的另外那个站点为什么可以提示我安装组件, 到底跟现在这个application有什么不同.

刚开始还是没有头绪, 我就直接把下面一段代码放到application的页面里面,试试它会不会自动下载.
<OBJECT id="arv1" codeBase="arview2.cab" height="0" width="0" classid="clsid:8569D715-FF88-44BA-8D1D-AD3E59543DDE"
 VIEWASTEXT>
 <PARAM NAME="_ExtentX" VALUE="11218">
 <PARAM NAME="_ExtentY" VALUE="7329">
</OBJECT>
奇怪的是, 这样的代码也不会提示. 真郁闷.

百无聊赖之下, 我突然想起了CodeBase, 是不是路径不对呢?

果然, 代码修改如下即可:
<OBJECT id="arv1" codeBase="/myapp/arview2.cab" height="0" width="0" classid="clsid:8569D715-FF88-44BA-8D1D-AD3E59543DDE"
 VIEWASTEXT>
 <PARAM NAME="_ExtentX" VALUE="11218">
 <PARAM NAME="_ExtentY" VALUE="7329">
</OBJECT>

另外,如果通过代码,也可以这样做
WebViewer1.CodeBase = "/myapp/arview2.cab";


问题解决, 希望能帮助遇到类似问题的朋友.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值