以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]如何实现日志功能记录多个编辑人和编辑时间?多谢。 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91203) |
-- 作者:ksaa16888 -- 发布时间:2016/10/3 9:26:00 -- [求助]如何实现日志功能记录多个编辑人和编辑时间?多谢。 AfterEdit中加入以下代码,编辑人一行只能记录最后一位编辑人员,我想实现日志功能,不同的登录用户编辑了内容,即记录该用户名和编辑时间,该如何实现?多谢。 If e.Row.Isnull("账号")=False Then e.Row("编辑人")=user.name e.Row("编辑时间")=now Else e.Row("编辑人")=Nothing e.Row("编辑时间")=nothing End If
|
-- 作者:狐狸爸爸 -- 发布时间:2016/10/3 9:59:00 -- If e.Row.Isnull("账号")=False Then e.Row("编辑人")=e.Row("编辑人") & user.name e.Row("编辑时间")=e.Row("编辑时间") & now End If
|
-- 作者:ksaa16888 -- 发布时间:2016/10/3 11:36:00 -- 再请教下,可以实现?如何实现记录编辑人、编辑时间和编辑内容的日志呢?多谢。 即:编辑人、编辑时间、编辑了什么。 [此贴子已经被作者于2016/10/3 11:41:25编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2016/10/3 19:16:00 -- 用一个列,列名编辑日志,备注型: e.Row("编辑日志")=e.Row("编辑日志") & user.name & “|” & Date.now & "|" e.text & vbcrlf |
-- 作者:ksaa16888 -- 发布时间:2016/10/3 20:45:00 -- 加入到changeedit中:e.Row("编辑日志")=e.Row("编辑日志") & user.name & "|" & Date.now & "|" & e.text & vbcrlf 只记录账号一列(看参数TEST解释,是只记录编辑文本?),测试时也只记录了一个文本列,其他逻辑型等数据编辑变更日志未记录。
[此贴子已经被作者于2016/10/3 21:23:59编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2016/10/4 8:59:00 -- afterEdit事件 if e.col.name <> "编辑日志" then e.Row("编辑日志")=e.Row("编辑日志") & user.name & "|" & Date.now & "|" & e.text & vbcrlf end if
|
-- 作者:ksaa16888 -- 发布时间:2016/10/4 11:51:00 -- 报未知的编译错误,把e.teXt去掉就OK,AFTERedit说明里面没有TEXT参数。 if e.col.name <> "编辑日志" then e.Row("编辑日志")=e.Row("编辑日志") & user.name & "|" & Date.now & "|" & vbcrlf end if 但一旦这么做了,又没记录编辑内容了。
[此贴子已经被作者于2016/10/4 11:59:46编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2016/10/5 6:49:00 -- if e.col.name <> "编辑日志" then e.Row("编辑日志")=e.Row("编辑日志") & user.name & "|" & Date.now & "|" & e.row(e.col.name) & vbcrlf end if
|
-- 作者:客人 -- 发布时间:2016/10/5 20:08:00 -- 多谢狐爸,试了下代码,afteredit事件是不是只能记录新值?旧值记录不了?后来我在datacolchanged用以下代码尝试实现,测试了下,感觉好像可以,能帮忙看下是否有问题吗? Select Case e.DataCol.name
Case "账号" If e.NewValue Is Nothing Then e.DataRow("户名") = Nothing e.DataRow("机构") = Nothing e.DataRow("核准时间") = Nothing e.DataRow("是否黑名单")=Nothing Else e.DataRow("编辑日志") = e.DataRow("编辑日志") & User.Name & " " & Date.Now & "将" & e.DataCol.name & " """ & e.OldValue & """ 修改为 """ & e.NewValue & """" & vbcrlf Dim jcxx,rhhz,hmd As DataRow jcxx = DataTables("基础数据表").Find("[账号] = \'" & e.NewValue & "\'") rhhz = DataTables("核准信息").Find("[账号] = \'" & e.NewValue & "\'") If jcxx IsNot Nothing Then e.DataRow("户名") = jcxx("户名") e.DataRow("机构") = jcxx("机构") If rhhz IsNot Nothing Then e.DataRow("核准时间") = rhhz("核准时间") hmd=DataTables("黑名单").find("[户名] = \'" & e.DataRow("户名") & "\'") If hmd IsNot Nothing Then e.DataRow("是否黑名单")=True Else e.DataRow("是否黑名单")=False End If End If End If Case Else If e.DataCol.name<>"编辑日志" Then e.DataRow("编辑日志") = e.DataRow("编辑日志") & User.Name & " " & Date.Now & "将" & e.DataCol.name & " """ & e.OldValue & """ 修改为 """ & e.NewValue & """" & vbcrlf End If End Select |
-- 作者:ksaa16888 -- 发布时间:2016/10/5 20:26:00 -- 多谢狐爸,试了下代码,afteredit事件是不是只能记录新值?旧值记录不了?后来我在datacolchanged用以下代码尝试实现,测试了下,感觉好像可以,能帮忙看下是否有问题吗? Select Case e.DataCol.name
Case "账号" If e.NewValue Is Nothing Then e.DataRow("户名") = Nothing e.DataRow("机构") = Nothing e.DataRow("核准时间") = Nothing e.DataRow("是否黑名单")=Nothing Else e.DataRow("编辑日志") = e.DataRow("编辑日志") & User.Name & " " & Date.Now & "将" & e.DataCol.name & " """ & e.OldValue & """ 修改为 """ & e.NewValue & """" & vbcrlf Dim jcxx,rhhz,hmd As DataRow jcxx = DataTables("基础数据表").Find("[账号] = \'" & e.NewValue & "\'") rhhz = DataTables("核准信息").Find("[账号] = \'" & e.NewValue & "\'") If jcxx IsNot Nothing Then e.DataRow("户名") = jcxx("户名") e.DataRow("机构") = jcxx("机构") If rhhz IsNot Nothing Then e.DataRow("核准时间") = rhhz("核准时间") hmd=DataTables("黑名单").find("[户名] = \'" & e.DataRow("户名") & "\'") If hmd IsNot Nothing Then e.DataRow("是否黑名单")=True Else e.DataRow("是否黑名单")=False End If End If End If Case Else If e.DataCol.name<>"编辑日志" Then e.DataRow("编辑日志") = e.DataRow("编辑日志") & User.Name & " " & Date.Now & "将" & e.DataCol.name & " """ & e.OldValue & """ 修改为 """ & e.NewValue & """" & vbcrlf End If End Select |