注册 登录
编程论坛 VFP论坛

我在grid的一行单元格记录做修改后,记录前后数据,如何做?

miconet 发布于 2023-02-18 08:05, 1410 次点击
在GRIRD 的COLUMN.TEXT中的WHEN 取修改前的数据
select lscgxx &&为GIRD 的数据源
THISFORM.修改前 =THIS.VALUE

在GRIRD 的COLUMN.TEXT中的VALID取修改后的数据
THISFORM.修改后 =THIS.VALUE

目前 的问题是,修改第一条记录时,取到修改前的值 都是为0

请老师解惑
12 回复
#2
sdta2023-02-18 08:28
* 修改前
GRID1.COLUMN1.TEXT1.GOTFOCUS
MESSAGEBOX(THIS.VALUE)

* 修改后
GRID1.COLUMN1.TEXT1.LOSTFOCUS
MESSAGEBOX(THIS.VALUE)

试试是否可行
#3
吹水佬2023-02-18 08:31
这个世界有时眼见不为实,最好不要用VALUE,直接取DBF的数。
#4
miconet2023-02-18 08:57
回复 3楼 吹水佬
取DBF的值也是不行,THISFORM.修改前 =lscgxx.cg_sssl 这样
#5
laowan0012023-02-18 09:02
如果只是某字段的值,那就复制那个字段
如果是多字段的值,那就手复制那个表
这样方便对比之前之后的值
#6
miconet2023-02-18 09:02
回复 2楼 sdta
不行,为0
#7
sdta2023-02-18 09:05
上传相关文件看看
#8
miconet2023-02-18 09:09
@sdta @吹水佬   用这样可以,THISFORM.修改前 =lscgxx.zcg_sssl ,谢谢大家
#9
miconet2023-02-18 09:30
要GRID1.COLUMN1.TEXT1.GOTFOCUS中才行,用WHEN 取不到,不知道为什么?
#10
sdta2023-02-18 10:19
When 事件
在控件接收焦点之前此事件发生。

GotFocus 事件
当通过用户操作或执行程序代码使对象接收到焦点时,此事件发生。



多看看帮助文件

#11
丁春秋yxp2023-02-18 21:44
以下是引用sdta在2023-2-18 10:19:12的发言:

When 事件
在控件接收焦点之前此事件发生。

GotFocus 事件
当通过用户操作或执行程序代码使对象接收到焦点时,此事件发生。



多看看帮助文件

我也觉得应该是用GotFocus和LostFocus才合适(通过测试成功)

[此贴子已经被作者于2023-2-18 21:52编辑过]

#12
miconet2023-02-24 10:11
回复 11楼 丁春秋yxp
是的,
#13
laowan0012023-02-24 10:38
备份一下当前表(记录数据原始状态)可好
1