以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]使用8-12版BeforeCloseProject事件出错!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55149)

--  作者:新福星
--  发布时间:2014/8/11 18:49:00
--  [求助]使用8-12版BeforeCloseProject事件出错!

使用8-12开发新版。升级下载文件完成后,提示“....请重新启动以完成余下启动过程",当确认后,系统关闭启动了BeforeCloseProject进程,就出现了错误提示。

 

见下图。

 

BeforeCloseProject进程程序如下。第一条语句宇是个显示语句,但是出错时这条语句根本就没运行到。升级成功后则程序就正常了!不再出现上述的错误!

 

MessageBox.Show(0)
If Vars("登陆IP")=0 Then Return
MessageBox.Show(1)
Dim s As DataRow=DataTables("登陆记录").Sqlfind("[_Identify]=" & Vars("登陆IP"))
If s IsNot Nothing Then
    MessageBox.Show(2)
    s("退出时间")=Date.now
   .....    
    s.save
   
Else
    MessageBox.Show(3)
    Dim r As Row=Tables("登陆记录").AddNew
   ......

    r.save
   
End If


图片点击可在新窗口打开查看此主题相关图片如下:qq1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq3.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2014/8/11 19:11:00
--  

 你尝试这样写升级代码

 

SystemReady = False

Syscmd.Project.Update()


--  作者:新福星
--  发布时间:2014/8/11 19:37:00
--  

加入SystemReady = False这条语句,正常登陆窗口都不动作了


--  作者:新福星
--  发布时间:2014/8/11 19:40:00
--  

升级前是好用的!

现在升级出错后,再启动升级后程序就好用了!

就是在升级过程下载数据,关闭程序时出现错误!这应该是升级后程序的一个问题


--  作者:有点甜
--  发布时间:2014/8/11 19:43:00
--  
以下是引用新福星在2014-8-11 19:37:00的发言:

加入SystemReady = False这条语句,正常登陆窗口都不动作了

 

哦,好像是没有办法的。你尝试删除BeforeCloseProject的代码,看是否正常;如果不正常,就是其他代码影响了,比如AfterOpenProject后面的代码影响了。


--  作者:新福星
--  发布时间:2014/8/11 20:34:00
--  

别说没办法了啊!原来好用的,升级后就不好用了

刚才把BeforeCloseProject的代码全部封上了,错误就没了!

 

下面是升级语句,哪还有错啊?

If Syscmd.Project.Update(False,True) = False Then \'如果没有升级
    Forms("登陆窗口").Open()
End If


--  作者:有点甜
--  发布时间:2014/8/11 20:41:00
--  

 有可能是vars变量的问题,你尝试关闭一下看看。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140811203956.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2014/8/11 20:57:00
--  
 我用新版测试了一下好像没有什么问题。
--  作者:新福星
--  发布时间:2014/8/12 6:16:00
--  
Var变量必须提前定义这个问题我也考虑到了,也将其分别定义为True和False 但是错误仍然出现
--  作者:新福星
--  发布时间:2014/8/12 6:28:00
--  

SystemReady = False

If Syscmd.Project.Update(False,True) = False Then \'如果没有升级
    Forms("登陆窗口").Open()
End If

这么写登陆窗口就不动了;

 

SystemReady = False

If Syscmd.Project.Update(False,True) = False Then \'如果没有升级

SystemReady = true
    Forms("登陆窗口").Open()
End If

这么写错误又来了;

就是在升级下载文件后,确认重新启动程序时出来这么一次告警。升级完成后就不再出现这个错误了;

很显然这是在升级下载文件后,关闭程序时仍然触发了BeforeCloseProject这个事件,但是运行条件不够就出现错误了。升级后重新启动再关闭程序触发了BeforeCloseProject,这时正常了所以就不出错了!

请官家帮助解决下!谢谢