VB6.0+CrystalReport9.2+Installshield遇到的问题。

最近在做一个项目,遇到了一个怪问题。

项目情况:

开发工具: vb6.0+crystalreprt9.2中文版

程序中使用了CRviewer9控件(打印预览)。

问题:在用InstallShield10.5对程序进行打包后,打包方法采用这个方法。在目标机器安装后,运行程序。在使用了CRviewer9的窗口,显示窗口前回水晶报表会弹出一个提示"A Crystal Reports job failed because a free license could not be obtained in the time allocated."点确定后程序可以使用。

原因:出现这个问题的原因是水晶报表的License不够,一台机器每次只能运行一个CRviewer9,显示多个需购买License。但是我的程序就只显示一个CRviewer9控件啊?经过对程序本身的分析发现,程序中有一个地方对CRviewer9进行了重复的调用。就是这段代码引起的错误。这个重复调用很隐蔽,它的出现,也在此给我敲响了警钟(呵呵,当然这段程序不是我这个“高手”编的)。现在来分析一下错误原因。程序里有一个字程序CrpView()用于显示调用CRviewer9控件。程序里还有一个地方用到了combobox控件。

有一段程序是这样的。

Private Sub Form_Load()

..................................

    Combobox1.ListIndex = initOrder
'    Call CrpView(Combobox1.ListIndex = initOrder)    '根据参数值显示预览画面

.................................

End Sub

Private Sub Combobox1_Click()
......................
  

        Call CrpView(Combobox1.ListIndex = initOrder) '根据参数值显示预览画面
  
...................................
End Sub

问题出在Combobox1.ListIndex = initOrder,这里隐含了一次Combobox1_Click()调用,而Combobox1_Click()里有一次Call CrpView()的调用而在用Combobox1.ListIndex = initOrder作参数就形成了多次调用。

删掉一个from_load中的Call CrpView(),将参数改为变量调用这个问题就解决了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值