以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  主窗口切换时的保存问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=124178)

--  作者:whx007
--  发布时间:2018/9/1 5:02:00
--  主窗口切换时的保存问题

我有一个topicbar共有窗口,里面有多个主窗口。当从主窗口A切换到主窗口B时,如果主窗口A有未保存的数据需要提醒用户要保存后才能离开,应该写在哪个事件里面。我现在写在主窗口A的BeforeClose里面不起作用,代码如下:

If Tables("销售订单").Current.DataRow.RowState = DataRowState.Added AndAlso Tables("销售明细表").Current Is Nothing Then
    Tables("销售订单").Current.Delete
    DataTables("销售订单").save
ElseIf Tables("销售订单").Current.DataRow.RowState = DataRowState.Added AndAlso Tables("销售明细表").Current IsNot Nothing Then
    MessageBox.show("当前订单尚未保存,不能关闭!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
End If

但在窗口设计器时预览,点右上角的关闭按钮时有起作用的。


--  作者:有点蓝
--  发布时间:2018/9/1 8:40:00
--  
写到topicbar的点击事件里,打开其他窗口前进行判断。
--  作者:whx007
--  发布时间:2018/9/1 15:03:00
--  
click事件吗?还是enter 或者leave
--  作者:有点蓝
--  发布时间:2018/9/1 15:14:00
--  
窗口在哪里打开的,就在哪里判断
--  作者:whx007
--  发布时间:2018/9/1 16:39:00
--  
不知道怎么写,请给个示例谢谢
--  作者:有点蓝
--  发布时间:2018/9/1 17:07:00
--  
If Tables("销售订单").Current.DataRow.RowState = DataRowState.Added AndAlso Tables("销售明细表").Current Is Nothing Then
    Tables("销售订单").Current.Delete
    DataTables("销售订单").save
ElseIf Tables("销售订单").Current.DataRow.RowState = DataRowState.Added AndAlso Tables("销售明细表").Current IsNot Nothing Then
    MessageBox.show("当前订单尚未保存,不能关闭!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    return 
End If
forms("xxxx").open

--  作者:whx007
--  发布时间:2018/9/1 19:05:00
--  
好的,谢谢
--  作者:whx007
--  发布时间:2018/9/1 19:22:00
--  
select case e.link.name case "A" forms("A"). open case "B" forms("B"). open case "C" forms("C"). open case "D" forms("D"). open case "E" forms("E"). open end select 在B,C,D,E窗口打开前都加上这代码,有没简便的方法。 谢谢!
--  作者:有点甜
--  发布时间:2018/9/2 11:31:00
--  

直接写

 

forms(e.link.name). show

[此贴子已经被作者于2018/9/2 11:30:52编辑过]

--  作者:whx007
--  发布时间:2018/9/3 4:00:00
--  
实在是太高了,谢谢甜老师!