saneryeening的专栏

If no one believes in you, anything you do is a positive.

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(),将参数改为变量调用这个问题就解决了。

 

 

阅读更多
文章标签: vb 报表 开发工具
想对作者说点什么? 我来说一句

java遇到问题txt

2010年04月05日 756B 下载

java web开发中常遇到问题

2012年12月10日 47KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭