以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  HasChanges判断问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70455)

--  作者:supwork
--  发布时间:2015/6/22 15:48:00
--  HasChanges判断问题

MessageBox.show(DataTables("设备资料表").HasChanges)

 

关于HasChanges修改状态的判断问题,我本意是用来判断内容有无修改

但 经测试 如果 LOCKED状态被改变则HasChanges状态也被改变了

这样就导致我一窗口进入某行数据进行修改

为了上用户要能进行修改,我就将该行数据的LOCKED状态改成 FALSE

然后用户并没有进行实质修改

 

我在关闭前进行HasChanges状态验证,如果有修改则提示用户有修改。但是用户并无实质修改系统也提示数据发生变化了,要不要保存?

 

这样感觉 HasChanges状态判断就非设计 意图了?

 

难道要在LOCKED状态发生改变后,人为地将HasChanges状态改成 false

 

可是这个值是只读的

 

如此 HasChanges功能大打折扣了

 

如果非要在状态 改变后执行一个 假保存 从而将HasChanges值 置为 false则太有背于效率了

 

那如何判断用户有无真正地改变表(行)内容呢, 我需要的结果是 如果 用户没有改变表内容或格式,就能判断为 未修改 能直接关闭

而不是提示用户 数据已被修改 需要保存否。

 

状态改变有 系统级的准备改变,这个不影响 内容及值的

               用户级的改变,这个一般才是要判断的。

官方将两者放在一起了

[此贴子已经被作者于2015/6/22 16:48:08编辑过]

--  作者:大红袍
--  发布时间:2015/6/23 11:20:00
--  
 要么你不去修改表内容;修改了表内容,你就必须先save一下