首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

怎么实现数据被修改后退出时提示是否存盘功能

2012-02-23 
如何实现数据被修改后退出时提示是否存盘功能?就像用VFP在修改表单或文件时,一旦有改动,在退出时系统会提

如何实现数据被修改后退出时提示是否存盘功能?
就像用VFP在修改表单或文件时,一旦有改动,在退出时系统会提示是否存盘。

[解决办法]
如何判断数据是否被修改

说明:当用户浏览数据时无意或有意的修改了数据,所以当关闭数据浏览时,需要提示用户是否对所做的修改做保存,一般可以在每个可以被修改的控件中的INTERACTIVECHANGE事件中写代码,当引发这个事件时,将某个变量(如isEdit)设为逻辑.T.,那么当退出时可以通过判断该变量的值来提示操作者是否要保存。因为如果用户没有做修改而再提示的话显得有点多余了,所以这个提示会显得操作更友好。
但是如果对每一个可以编辑的控件的INTERACTIVECHANGE事件都写入代码,显得有点麻烦,即使作为类考虑也不是很好的办法,所以下面的方法供大家参考。

注意:使用此法,你必须用缓冲方式打开表才行。

isNeedToSave=.f.
for gnCount = 1 TO FCOUNT( ) && 循环次数等于字段的数目
if GETFLDSTATE(FIELD(gnCount))> =2 && 显示各字段,具体看GETFLDSTATE()函数
isNeedToSave=.t.
exit && 当有某个字段被修改后,即退出判断
endif
endfor

if isNeedToSave
ans=messagebox( "要保存所做的修改吗? ",3+32, "询问 ")
do case
case ans=6 && 选择是
=tableupdate(.t.)
case ans=7 && 选择否
=tablerevert(.t.)
case ans=2 && 选择取消
endcase
endif

建议将以上代码写在表单的QUERYUNLOAD事件中。

热点排行