以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口beforeclose和afterclose  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97541)

--  作者:80790800
--  发布时间:2017/3/14 13:32:00
--  窗口beforeclose和afterclose

版主你好:

 

我在同一个窗口的beforeclose和afterclose分别写如下代码

before

If Tables("袜机状态表").Current.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行已经修改过
    MessageBox.Show("请保存数据后再关闭!")
    e.Cancel = True
End If

 

after

Forms("织造车间袜机状态").Close
Forms("织造车间袜机状态").open

 

我修改数据后没有保存数据,直接点关闭窗口,弹出“请保存数据后再关闭”的提示,确定之后窗口本不应该关闭,但是却关闭了。

我把afterclose 的代码删除就不会关闭了,是两段代码有冲突吗? 该如何避免?  afterclose中的代码我是想刷新数据用。


--  作者:有点色
--  发布时间:2017/3/14 14:31:00
--  

 没测试过,但是你不可以写在一起?

 

If Tables("袜机状态表").Current.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行已经修改过
    MessageBox.Show("请保存数据后再关闭!")
    e.Cancel = True

Else

    \'这里写你其余的代码
End If


--  作者:80790800
--  发布时间:2017/3/14 16:35:00
--  

If Tables("袜机状态表").Current.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行已经修改过
    MessageBox.Show("请保存数据后再关闭!")
    e.Cancel = True

Else

Forms("织造车间袜机状态").Close
Forms("织造车间袜机状态").open

End If

 

改成如上,还是关闭了,e.cancel 没起作用。


--  作者:有点蓝
--  发布时间:2017/3/14 16:56:00
--  
刷新数据有必要重新打开么。直接调用刷新的代码不行吗,比如按钮、函数什么的
--  作者:80790800
--  发布时间:2017/3/14 17:14:00
--  
因为打开关闭的窗口中要重新绘制listview,我没有更好的其他办法
--  作者:80790800
--  发布时间:2017/3/14 17:46:00
--  

我要刷新的窗口中加载了TopicBar的代码


Dim Page As WinForm.TopicPage
Dim cnt1 As Integer = DataTables("袜机状态表").Compute("Count(运行状态)","运行状态 = True")
Dim cnt2 As Integer = DataTables("袜机状态表").Compute("Count(运行状态)","运行状态 = False")
Page = e.Form.Controls("TopicBar1").Pages.Add("袜机状态","袜机状态")
Page.Links.Add("停止的袜机","停止的袜机(" & cnt2 & ")" )
Page.Links.Add("运行的袜机","运行的袜机(" & cnt1 & ")" )

 

删除后这个现象就没有了,不知道为什么。

 

还是有这个情况。我明天把例子上传,版主帮忙看看吧

[此贴子已经被作者于2017/3/14 17:47:13编辑过]

--  作者:有点蓝
--  发布时间:2017/3/14 17:46:00
--  

重新绘制试试

 

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.Refresh()

 

虚拟模式参考http://www.foxtable.com/webhelp/scr/2843.htm

 


--  作者:80790800
--  发布时间:2017/3/15 9:33:00
--  

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

版主你好

 

我是商业版做的,帮忙看下。 双击图片后修改内容,点击关闭后本不应关闭,结果还是关闭了窗口。


--  作者:有点色
--  发布时间:2017/3/15 10:10:00
--  

AfterClose代码

 

Dim Page As WinForm.TopicPage
Dim frm = Forms("织造车间袜机状态")
If frm.Opened Then
    Dim cnt1 As Integer = DataTables("袜机状态表").Compute("Count(运行状态)","运行状态 = True")
    Dim cnt2 As Integer = DataTables("袜机状态表").Compute("Count(运行状态)","运行状态 = False")
    Page = frm.Controls("TopicBar1").Pages("袜机状态")
    Page.Links("停止的袜机").Text = "停止的袜机(" & cnt2 & ")"
    Page.Links("运行的袜机").Text = "运行的袜机(" & cnt1 & ")"
End If


--  作者:80790800
--  发布时间:2017/3/15 10:25:00
--  
造成窗口关闭是topicbar的代码的原因吗?