以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  修改问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=193963)

--  作者:lgz518
--  发布时间:2024/10/29 8:44:00
--  修改问题
If e.Col.Name = "单价" Then
    e.
Row("Log") = User.Name & " " & Date.Now
End
 
If

如何让上面加上:修改次数为,修改前的单价与修改后的单价

e.Row("Log") = 修改次数为:1修改前:单价 & 修改后:单价 &User.Name & " " & Date.Now

--  作者:有点蓝
--  发布时间:2024/10/29 8:49:00
--  
e.Row("Log") = "修改次数为:1" &" 修改前:" & 单价 & ....
--  作者:lgz518
--  发布时间:2024/10/29 9:28:00
--  
\'If e.Col.Name = "单价" Then
\'    e.Row("Log") = "修改次数为:1" & " 修改前:" & e.DataRow("单价") & " 修改后:" & e.DataRow("单价") & User.Name & " " & Date.Now
\'End If

执行后,单价修改,还是"修改次数为:1" ," 修改前:" & e.DataRow("单价") & " 修改后:" & e.DataRow("单价") 都一样,不符合需求

需求:记录表A的单价每次变化,比如:单价第1次的记录:"修改次数为:1,修改前:20,修改后:25,
单价第2次的记录:"修改次数为:2,修改前:25,修改后:30,
单价第3次的记录:"修改次数为:3,修改前:30,修改后:35,
如何实现?


--  作者:有点蓝
--  发布时间:2024/10/29 9:35:00
--  
没有办法知道修改了几次。除非另外添加一个列记录
--  作者:lgz518
--  发布时间:2024/10/29 10:32:00
--  
是加一列,记录修改次数?如何实现每次修改的修改前:,修改后:的变更
--  作者:有点蓝
--  发布时间:2024/10/29 10:43:00
--  
\'If e.DataCol.Name = "单价" Then
e.DataRow("次数") += 1
\'    e.DataRow("Log") = "修改次数为:" & e.DataRow("次数")  & " 修改前:" & e.OldValue & " 修改后:" & e.NewValue & User.Name & " " & Date.Now
\'End If

DataColChanged

某一列的内容被更改后执行,此时列的内容已经是更改后的值。

e参数属性:

DataTable:返回发生数据更改的数据表。
DataRow:  返回发生数据更改的数据行。
DataCol:  返回发生数据更改的数据列。
NewValue: Object类型,表示新的值。
OldValue: Object类型,表示旧的值


--  作者:lgz518
--  发布时间:2024/10/29 15:10:00
--  
上面执行,只记录最后一次修改,如何实现记录每一次的修改?
--  作者:有点蓝
--  发布时间:2024/10/29 15:20:00
--  
本来就是每一次的修改,每次改单元格内容都会触发DataColChanged
--  作者:lgz518
--  发布时间:2024/10/29 15:25:00
--  
需求:Log为备注型,来记录每次的内容,如何实现?

比如:
单价第1次的记录:"修改次数为:1,修改前:20,修改后:25,
单价第2次的记录:"修改次数为:2,修改前:25,修改后:30,
单价第3次的记录:"修改次数为:3,修改前:30,修改后:35,
这些都在Log。

--  作者:有点蓝
--  发布时间:2024/10/29 15:29:00
--  
If e.DataCol.Name = "单价" Then
e.DataRow("次数") += 1
    e.DataRow("Log") =e.DataRow("Log") &  ",修改次数为:" & e.DataRow("次数")  & " 修改前:" & e.OldValue & " 修改后:" & e.NewValue & User.Name & " " & Date.Now
End If