以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请查一下这个系统命令Syscmd.Project.Open是不是有bug? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149729) |
-- 作者:mojunming189 -- 发布时间:2020/5/10 20:26:00 -- 请查一下这个系统命令Syscmd.Project.Open是不是有bug? 经过各种排除法后,终于锁定这个系统命令Syscmd.Project.Open(ProjectFile,tbu.Value),只要通过它重新打开项目,就出现如下问题: |
-- 作者:mojunming189 -- 发布时间:2020/5/10 20:27:00 -- 这个系统命令在2019.11.3之前的版本,都没有问题,换新版本后,就一直出现这样的问题。这个系统命令不用还不行,实在没招了,看看是不是里面有bug? |
-- 作者:有点蓝 -- 发布时间:2020/5/11 9:20:00 -- 方法1、在上面圈住的代码前面加一句:e.cancel=true 2、把打开项目的代码放到afteropenproject事件,参数通过全局变量传递,如: forms("登录窗口").open if vars("某变量") > "" Syscmd.Project.Open(projectfile, vars("某变量")) return else ...... end if
|
-- 作者:mojunming189 -- 发布时间:2020/5/11 12:23:00 -- 这样还是不行,造成循环,一直在打开那个登录窗口。 |
-- 作者:mojunming189 -- 发布时间:2020/5/11 12:26:00 -- 因为在afteropenproject事件之前,用到的如下事件 BeforeOpenProject 都需要这个变量来传递,判断是否要加载。 |
-- 作者:有点蓝 -- 发布时间:2020/5/11 13:36:00 -- 这个全局变量只是在Syscmd.Project.Open里使用,和上面3个事件没有任何关系,3个事件应该使用的是openFileargs |
-- 作者:mojunming189 -- 发布时间:2020/5/11 14:02:00 -- 好的。那么对这个全局变量的赋值,应该放在登录窗口中,还是在AfteropenProject事件中? |
-- 作者:有点蓝 -- 发布时间:2020/5/11 14:08:00 -- 放在登录窗口中,替代Syscmd.Project.Open,比如:vars("某变量") = tbu.value |
-- 作者:mojunming189 -- 发布时间:2020/5/11 14:24:00 -- 通过在Afteropenproject事件中执行: If OpenFileArgs.Count = 0 Then \'第一次连接的时候,打开登录窗口 Forms("UserLogin").Show Syscmd.Project.Open(projectfile,Vars("_username")) Return Else user.Name= openfileargs(0) \'(0)是第一个参数 End If 终于可以了! 但不知道为什么? |