以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口有些事务未处理完毕,怎样设置不能转到其他窗口或关闭或退出项目  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=163833)

--  作者:fvcfox
--  发布时间:2021/4/26 12:01:00
--  窗口有些事务未处理完毕,怎样设置不能转到其他窗口或关闭或退出项目
如题
--  作者:有点蓝
--  发布时间:2021/4/26 12:09:00
--  
什么样的事务?

使用全局变量判断,如:
全局变量
public 变量1 as boolean

窗口事务

变量1=true
事务处理
变量1 = false

窗口beforeclose事件
if 变量1 = true then e.cancel = true

--  作者:fvcfox
--  发布时间:2021/4/26 14:21:00
--  
If DataTables("订单").Select("NO23 is null and 作废=0 and 新增行标志=0").Count>0
    For Each r3 As DataRow In DataTables("订单").Select("NO23 is null and 作废=0 and 新增行标志=0")
        messagebox.show("订单表中有些记录未进行 [订单分类] 选择,请回到订单主窗口未进行修改并保存后再关闭","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Dim i As Integer= Tables("订单").Find(r3("_Identify"),0,"流水号",False,True,False)
        Tables("订单").Position=i
        e.Cancel=True
    Next
End If
DataTables("订单").Save

代码是放在窗口beforeclose事件(该窗口是主窗口模式),但发现还是能切换到其他主窗口

--  作者:有点蓝
--  发布时间:2021/4/26 14:32:00
--  
这个仅适合独立和模式窗口

主窗口到项目属性MainTableChanging事件判断
--  作者:fvcfox
--  发布时间:2021/4/26 15:08:00
--  
那要怎样留在原窗口了
--  作者:有点蓝
--  发布时间:2021/4/26 15:10:00
--  
如果有多个主窗口都是同一个所有者表,这种没有办法。