Foxtable(狐表)用户栏目专家坐堂 → 如何在AfterEdit事件中,判断用户是否修改了数据?


  共有2980人关注过本帖树形打印复制链接

主题:如何在AfterEdit事件中,判断用户是否修改了数据?

帅哥哟,离线,有人找我吗?
蓝色理想
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
如何在AfterEdit事件中,判断用户是否修改了数据?  发帖心情 Post By:2018/11/7 13:57:00 [只看该作者]

Foxtable 的Table中,用户双击进入 某一单元格,当他离开这一单元格时,我想判断一下他是否对当前单元格做了修改
若做了修改,我会把 对应的 "申报日期" 修改为当前日期
若没做修改,没必要 修改 "申报日期"

请问如何实现?

 回到顶部
帅哥哟,离线,有人找我吗?
蓝色理想
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2018/11/7 14:01:00 [只看该作者]

找到一种方法
MessageBox.Show( "原始数据:" & e.Row.DataRow.OriginalValue(e.Col.Name) & "当前数据:" & e.Row(e.Col.Name) )

不知有没有其他更好的

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/7 14:43:00 [只看该作者]

1、为什么不直接在datacolchanged处理?

 

2、你可以在startEdit记录旧值,然后afterEdit比较旧值即可。


 回到顶部
帅哥哟,离线,有人找我吗?
蓝色理想
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2018/11/7 18:40:00 [只看该作者]

回复甜版,因为我需要 在离开单元格后,立刻 把 申报日期 修正为最新日期



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/7 21:18:00 [只看该作者]

datacolchanged事件

 

If e.datacol.name = "第一列" Then

    e.datarow("申报日期") = Date.Today

End If


 回到顶部
帅哥哟,离线,有人找我吗?
chinaabs
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:53 积分:1019 威望:0 精华:0 注册:2019/2/26 16:38:00
startedit 数据 使用全局变量需要保存才有效  发帖心情 Post By:2023/12/18 9:55:00 [只看该作者]

有一个单价列,这个单价列会有其它代码更新或者手动更新,现在想手动更新后,将计价方式设置为0(手动指定),如果手动修改后数据没变,则不用更改计价方式列。
设置了一个unitprice 全局变量。

startedit事件
'记录开始修改时的单价用于afteredit的比较
If e.Col.Name = "单价" Then
     unitprice = e.Row("单价")
     e.Row.Save
    
End If

afteredit事件

'手动修改价格时候价格改为指定
MessageBox.Show(unitprice)
If e.Col.Name = "单价" AndAlso math.Round(e.Row("单价"), 6) <> math.Round(unitprice, 6) Then

        e.Row("计价方式") = 0
End If

测试发现 unitprice = e.Row("单价") 这一列赋值是后台的保存数据,并非前台显示的数据,后面加了 e.Row.Save也无效
如果现在单价是5,保存。通过代码将单价改为6,然后手动修改为6,unitprice得到的值仍然是5,因此还会更改计价方式。
有没有办法让unitprice  = 当前显示的单价?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110809 积分:563983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/12/18 10:09:00 [只看该作者]

通过代码将单价改为6的地方后面加上给unitprice也赋值为6的代码

 回到顶部