有一个单价列,这个单价列会有其它代码更新或者手动更新,现在想手动更新后,将计价方式设置为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 = 当前显示的单价?