以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  最后帖子的2段代码能解释下 为什么会有区别不同?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=12066)

--  作者:gaoyong30000
--  发布时间:2011/8/21 15:07:00
--  最后帖子的2段代码能解释下 为什么会有区别不同?

双击打开独立窗口

 

我要实现的功能是:判断当前行是否已在窗口里被修改,如果已经被修改过,但没有保存,就禁止换行

 

由于 表属性里没有更换行之前的事件,只有更换行之后的事件,我最终把这代码放在如下 beforeselrangechange里

 

If Tables("客户档案").Current.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行已经修改过
e.Cancel = True
End If

 

但是我这个项目里 的窗口事件  beforceclose已经设置了

Dim tbl As Table = Tables("客户档案")
If Tables("客户档案").Current.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行已经修改过
MessageBox.Show("更改的记录未保存", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)
e.cancel = True
Else
    tbl.filter = ""
End If

 

 

现在导致我双击一个记录 打开窗口 然后再关闭窗口 就出现了这个错误

  
图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

 

还有我窗口里有个快速检索  点击快速检索  也会上面的错误 

 

该如何解决?


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:内控系统16.rar

[此贴子已经被作者于2011-8-22 10:42:12编辑过]

--  作者:gaoyong30000
--  发布时间:2011/8/21 19:44:00
--  

终于自力更生 解决了 !

 

又仔细得看了下帮助  换了这个代码就ok了!

 

Dim dt As DataTable = DataTables("客户档案")
If dt.HasChanges = True
MessageBox.Show("未保存修改数据", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)
e.cancel = True
End If

 

If dt.HasChanges = True

If Tables("客户档案").Current.DataRow.RowState <> DataRowState.Unchanged

有区别???


--  作者:布莱克朱
--  发布时间:2011/8/21 19:50:00
--  
你这个整复杂了,再想想思路和逻辑.
--  作者:gaoyong30000
--  发布时间:2011/8/21 19:59:00
--  

是挺复杂的! 主要考虑到易用性和数据安全性 

 

我要是只考虑一方面 我直接设置个 模式窗口就得了

 

 

就是为了让录入员 录入的时候还可以自己点击后面的表数据换行查看 

但又不能 让这种换行后自动保存数据的情况发生!


--  作者:gaoyong30000
--  发布时间:2011/8/22 10:43:00
--  
以下是引用gaoyong30000在2011-8-21 19:44:00的发言:

终于自力更生 解决了 !

 

又仔细得看了下帮助  换了这个代码就ok了!

 

Dim dt As DataTable = DataTables("客户档案")
If dt.HasChanges = True
MessageBox.Show("未保存修改数据", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)
e.cancel = True
End If

 

If dt.HasChanges = True

If Tables("客户档案").Current.DataRow.RowState <> DataRowState.Unchanged

有区别???