Foxtable(狐表)用户栏目专家坐堂 → 如何等待一个窗口关闭后再执行


  共有2415人关注过本帖树形打印复制链接

主题:如何等待一个窗口关闭后再执行

帅哥哟,离线,有人找我吗?
rjh4078
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3375 积分:24904 威望:0 精华:0 注册:2012/3/26 21:47:00
如何等待一个窗口关闭后再执行  发帖心情 Post By:2018/8/27 16:30:00 [只看该作者]

有一段代码是等待某个窗口里最后保存的数据结果来判断是否执行下一步,但是用独立窗口的时候,这个代码会直接执行,不会等到窗口关闭后执行,如果用模式窗口,因为要参考其他表的内容,又不方便操作,有什么好办法。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/27 16:42:00 [只看该作者]

先执行代码

 

vars("结束") = False
Do Until vars("结束") = True
    Application.DoEvents
Loop
msgbox("结束了")

 

然后执行

 

vars("结束") = True


 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3375 积分:24904 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2018/8/27 17:58:00 [只看该作者]

好像不行  这个窗口会被反复打开 

 If e.NewValue IsNot Nothing Then
Do Until  forms("预检单").opened=false then
            If Functions.Execute("预检",e.DataCol.name.Replace("人",""),e.DataRow("_identify"),e.DataTable.name)=False Then
                e.Cancel=True
                MessageBox.show("制程预检未确认,当前操作撤销!","提示")
            End If
            loop
        End If





预检函数

Dim lc As String=args(0)
Dim id As Integer=args(1)
Dim dn As String=args(2)
Dim lt As List(of DataRow)=DataTables("预检项目").SQLSel ect("单据名称='" & dn & "' and 流程名称='" & lc & "'")
Dim lst As List(of DataRow)=DataTables("预检单").SQLSel ect("单据名称='" & dn & "' and 单据ID='" & id  & "' and 流程名称='" & lc & "'")
If lt.count=0 Then
    Return True
Else
    If lst.count=0 Then
        For Each dr As DataRow In lt
            Dim r As Row=Tables("预检单").addnew
            r("预检人")=_username
            Dim time As Date=Functions.Execute("服务器时间")
            r("预检时间")=time
            r("单据名称")=dn
            r("流程名称")=lc
            r("预检项目")=dr("项目名称")
            r("单据id")=id
        Next
        vars("节点")=lc & "预检"
        Forms("预检单").show
        If Forms("预检单").Opened=False Then
            If  vars("预检")=False OrElse DataTables("预检单").sqlSe lect("单据id='" & id & "' and 预检结果_确认=0").count>0 Then
                Return False
            Else
                Return True
            End If
        End If
        
        
    Else
        DataTables("预检单").LoadFilter="单据名称='" & dn & "' and 单据ID='" & id & "' and 流程名称='" & lc & "'"
        DataTables("预检单").Load
        vars("节点")= lc & "预检"
        Forms("预检单").show
        If Forms("预检单").Opened=False Then
            If  vars("预检")=False OrElse DataTables("预检单").sqlSelect("单据id='" & id & "' and 预检结果_确认=0").count>0 Then
                Return False
            Else
                Return True
            End If
        End If
        
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/27 18:30:00 [只看该作者]

1、看懂2楼的代码;

 

2、理解不了的话,单独做个实例发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3375 积分:24904 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2018/8/27 19:01:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.rar


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111418 积分:567166 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/27 20:55:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.zip


 回到顶部