以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何暂停程序  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=116223)

--  作者:malavazos
--  发布时间:2018/3/21 14:59:00
--  如何暂停程序
请问,如何编写暂停程序,或编码执行的编码指令,例如:编写代码,是程序执行中,等待用户确认后,在继续执行。
谢谢

--  作者:有点甜
--  发布时间:2018/3/21 15:41:00
--  

可以弹出msgbox吧?

 

http://www.foxtable.com/webhelp/scr/0326.htm

 

 


--  作者:malavazos
--  发布时间:2018/3/22 17:18:00
--  
使用MSGBOX虽然可以暂停,但是如果前面开了窗口就不能操作了,如何解决这个问题。
执行了MSGBOX只能操作判断,不能停下来,执行前一个窗口的操作。执行判断了,就又继续执行了,希望能够暂停,操作完成确认后再继续执行

谢谢

--  作者:有点甜
--  发布时间:2018/3/22 18:17:00
--  

那就这样写代码,如

 

Do While vars("完成") = False
    Application.DoEvents
Loop
msgbox("ok")

 

然后控制 vars("完成") = true 结束暂停,执行msgbox


--  作者:malavazos
--  发布时间:2018/3/23 8:27:00
--  
下面这段代码,怎么调整,也是第一步可以可靠暂停;待第二部就不能停止,直接全部执行完。
请费心帮助看下如何编写

谢谢
Dim at As Date = Date.Today.AddDays(10)
\'Dim ar As DataRow = DataTables("检定流水记录").Find("本年计划检定日期 <= #" & at & "#")
Dim ar As DataRow = DataTables("检定流水记录").Find("本年计划检定日期 <= #" & at & "# And 本年实际检定日期 Is Null")
If ar IsNot Nothing Then
    MessageBox.Show("有计量器具到期或即将到期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    \'  Tables("检定流水记录").Filter = "本年计划检定日期 <= #" & at & "#"
    Tables("检定流水记录").Filter = "( 本年计划检定日期 <= #" & at & "#) And (本年实际检定日期 Is Null) And ([状态]  not Like  \'%报废%\' or [状态] is null) and ([计量计划.备注] not Like  \'%报废%\' or [计量计划.备注] is null) and ([计量台帐.备注] not Like  \'%报废%\' or [计量台帐.备注] Is null)"
    Forms("计量器具到期提醒").Show()
    \'MainTable = Tables("检定流水记录")
End If
Dim bt As Date = Date.Today.AddDays(10)
\'Dim ar As DataRow = DataTables("检定流水记录").Find("本年计划检定日期 <= #" & at & "#")
Dim br As DataRow = DataTables("计划维护记录流水表").Find("计划执行日期 <= #" & bt & "# And 实际执行日期 Is Null Or 存档日期 Is Null")
If br IsNot Nothing Then
    MessageBox.Show("有设备设施计划任务到期或即将到期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Tables("计划维护记录流水表").Filter = "(计划执行日期 <= #" & bt & "#) And (实际执行日期 Is Null) and (存档日期 Is Null)"
    \'Tables("计划维护记录流水表").Filter = "(计划执行日期 <= #" & bt & "#) And (实际执行日期 Is Null) And ([状态]  not Like  \'%报废%\' or [状态] is null) and ([计量计划.备注] not Like  \'%报废%\' or [计量计划.备注] is null) and ([计量台帐.备注] not Like  \'%报废%\' or [计量台帐.备注] Is null)"
    Forms("计划维护执行情况").Show()
    \'MainTable = Tables("计划维护记录流水表")
End If
Syscmd.Project.OpenSystemMenu()
Forms("1360*768分辨率窗口").Open()

--  作者:有点甜
--  发布时间:2018/3/23 8:43:00
--  

无法理解你的意思,先执行代码

 

msgbox(1)

Do While vars("完成") = False
    Application.DoEvents
Loop
msgbox("ok")

 

暂停以后,在另外地方执行 vars("完成") = true 结束暂停


--  作者:malavazos
--  发布时间:2018/3/23 9:37:00
--  
我的编码是程序每次启动发出两个检查提醒窗口,分别检查计量器具检定周期是否到期,及计划维护任务是否到期。如果无到期任务,直接执行下午,如有要停止在窗口。关闭该窗口后继续执行。
我不知如何将我的代码,带入您的代码中。
可否费心帮助调整一下。
谢谢

--  作者:有点甜
--  发布时间:2018/3/23 9:45:00
--  
以下是引用malavazos在2018/3/23 9:37:00的发言:
我的编码是程序每次启动发出两个检查提醒窗口,分别检查计量器具检定周期是否到期,及计划维护任务是否到期。如果无到期任务,直接执行下午,如有要停止在窗口。关闭该窗口后继续执行。
我不知如何将我的代码,带入您的代码中。
可否费心帮助调整一下。
谢谢

 

把提示窗口弄成【模式窗口】即可

 

http://www.foxtable.com/webhelp/scr/0697.htm