Foxtable(狐表)用户栏目专家坐堂 → 窗口有些事务未处理完毕,怎样设置不能转到其他窗口或关闭或退出项目


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

主题:窗口有些事务未处理完毕,怎样设置不能转到其他窗口或关闭或退出项目

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


加好友 发短信
等级:二尾狐 帖子:571 积分:5432 威望:0 精华:0 注册:2020/5/7 13:05:00
窗口有些事务未处理完毕,怎样设置不能转到其他窗口或关闭或退出项目  发帖心情 Post By:2021/4/26 12:01:00 [只看该作者]

如题

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/26 12:09:00 [只看该作者]

什么样的事务?

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

窗口事务

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

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

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


加好友 发短信
等级:二尾狐 帖子:571 积分:5432 威望:0 精华:0 注册:2020/5/7 13:05:00
  发帖心情 Post By: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事件(该窗口是主窗口模式),但发现还是能切换到其他主窗口

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/26 14:32:00 [只看该作者]

这个仅适合独立和模式窗口

主窗口到项目属性MainTableChanging事件判断

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


加好友 发短信
等级:二尾狐 帖子:571 积分:5432 威望:0 精华:0 注册:2020/5/7 13:05:00
  发帖心情 Post By:2021/4/26 15:08:00 [只看该作者]

那要怎样留在原窗口了

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/26 15:10:00 [只看该作者]

如果有多个主窗口都是同一个所有者表,这种没有办法。

 回到顶部