以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何记录修改日志?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59509)

--  作者:rophy0952
--  发布时间:2014/11/5 17:12:00
--  [求助]如何记录修改日志?
欲在表中设一列为行记录的修改日志,比如:A列的1值改为2值,B列的2值改为4值。请问类似于这样的日志该如何实现呢?
--  作者:有点甜
--  发布时间:2014/11/5 17:15:00
--  

 这个直接在datacolchanged加入代码

 

If e.DataCol.Name <> "日志" then

    e.Datarow("日志") &= vbcrlf & e.Datacol.Name & "  " & e.OldValue & "  " & e.NewValue

End If


--  作者:Bin
--  发布时间:2014/11/5 17:16:00
--  
datacolchaged事件

if e.datacol.name="A列" then
   e.datarow("日志")="A列值更改为 : " & e.datarow("A列") & "      " & date.now & vbcrlf
end if

--  作者:rophy0952
--  发布时间:2014/11/5 17:25:00
--  
谢谢两位老师的指导,这个修改日志,主要是用在审核的时候进行的修改,也就是说,第一次录入数据的时候,不需要记录日志。这样的话,要怎样加条件上去呢?
通过用户来限制行吗?

--  作者:有点甜
--  发布时间:2014/11/5 17:32:00
--  
 

If e.DataCol.Name <> "日志" AndAlso e.OldValue <> Nothing then

    e.Datarow("日志") &= vbcrlf & e.Datacol.Name & "  " & e.OldValue & "  " & e.NewValue

End If


--  作者:rophy0952
--  发布时间:2014/11/5 17:49:00
--  
嗯,好办法。另外有什么方式可以判断手动录入和自动生成的吗?因为有一些列的值是自动生成的,如果那些也记录在日志中的话,内容会比较多。我刚才把不想记录的列用  e.DataCol.Name <> "**列" 的方式进行分离,列数有点多,不知有没有更便捷的方法呢?
--  作者:有点甜
--  发布时间:2014/11/5 17:50:00
--  
 不要写到datacolchanged,写到AfterEdit事件
--  作者:rophy0952
--  发布时间:2014/11/5 18:13:00
--  
写到afteredit事件后,提示:编译错误:“datacol”不是“rowcoleventargs”的成员
--  作者:有点甜
--  发布时间:2014/11/5 19:09:00
--  
 datacol 换成 col,datarow 换成 row
--  作者:rophy0952
--  发布时间:2014/11/5 21:29:00
--  
"OldValue"不是“rowcoleventargs”的成员