以文本方式查看主题 - 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”的成员 |