以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何在AfterEdit事件中,判断用户是否修改了数据? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127166) |
-- 作者:蓝色理想 -- 发布时间:2018/11/7 13:57:00 -- 如何在AfterEdit事件中,判断用户是否修改了数据? Foxtable 的Table中,用户双击进入 某一单元格,当他离开这一单元格时,我想判断一下他是否对当前单元格做了修改 若做了修改,我会把 对应的 "申报日期" 修改为当前日期 若没做修改,没必要 修改 "申报日期" 请问如何实现?
|
-- 作者:蓝色理想 -- 发布时间:2018/11/7 14:01:00 -- 找到一种方法 MessageBox.Show( "原始数据:" & e.Row.DataRow.OriginalValue(e.Col.Name) & "当前数据:" & e.Row(e.Col.Name) ) 不知有没有其他更好的
|
-- 作者:有点甜 -- 发布时间:2018/11/7 14:43:00 -- 1、为什么不直接在datacolchanged处理?
2、你可以在startEdit记录旧值,然后afterEdit比较旧值即可。 |
-- 作者:蓝色理想 -- 发布时间:2018/11/7 18:40:00 -- 回复甜版,因为我需要 在离开单元格后,立刻 把 申报日期 修正为最新日期 |
-- 作者:有点甜 -- 发布时间:2018/11/7 21:18:00 -- datacolchanged事件
If e.datacol.name = "第一列" Then e.datarow("申报日期") = Date.Today End If |
-- 作者:chinaabs -- 发布时间:2023/12/18 9:55:00 -- startedit 数据 使用全局变量需要保存才有效 有一个单价列,这个单价列会有其它代码更新或者手动更新,现在想手动更新后,将计价方式设置为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 = 当前显示的单价? |
-- 作者:有点蓝 -- 发布时间:2023/12/18 10:09:00 -- 通过代码将单价改为6的地方后面加上给unitprice也赋值为6的代码 |