VB: 定时器和报表冲突
最近碰到一个奇怪的情况,VB6编写的软件使用了dsr格式的报表,没有使用水晶报表(crystal report)。在调用datareport.refresh的时候,出现错误“left and right margins are wider than the paper width”,查阅了资料,可能原因有以下几种
- · VS6没有打SP4或更高的补丁,最高版本的补丁是SP6
- · 页面的横、竖设置与报表不一致
- · 报表中的某个控件太长,超出页面的宽度
分别针对以上原因,进行了尝试,不幸问题仍然存在。
很偶然的,发现和主界面的定时器有关,停止定时器,不会出现上述错误;打开定时器,就会出现。
解决方法:
主界面deactive时,关闭定时器;
主界面active时,启动定时器。
参考资料:
VS6补丁 http://support.microsoft.com/kb/261193
控件超长 http://vbcity.com/forums/t/36909.aspx