Foxtable(狐表)用户栏目专家坐堂 → [求助]如何实现日志功能记录多个编辑人和编辑时间?多谢。


  共有6661人关注过本帖树形打印复制链接

主题:[求助]如何实现日志功能记录多个编辑人和编辑时间?多谢。

帅哥哟,离线,有人找我吗?
ksaa16888
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:68 积分:583 威望:0 精华:0 注册:2016/9/8 23:24:00
[求助]如何实现日志功能记录多个编辑人和编辑时间?多谢。  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:68 积分:583 威望:0 精华:0 注册:2016/9/8 23:24:00
  发帖心情 Post By:2016/10/3 11:36:00 [只看该作者]

再请教下,可以实现?如何实现记录编辑人、编辑时间和编辑内容的日志呢?多谢。 即:编辑人、编辑时间、编辑了什么。
[此贴子已经被作者于2016/10/3 11:41:25编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/10/3 19:16:00 [只看该作者]

用一个列,列名编辑日志,备注型:

e.Row("编辑日志")=e.Row("编辑日志") &  user.name & “|” & Date.now & "|" e.text & vbcrlf


 回到顶部
帅哥哟,离线,有人找我吗?
ksaa16888
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:68 积分:583 威望:0 精华:0 注册:2016/9/8 23:24:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:68 积分:583 威望:0 精华:0 注册:2016/9/8 23:24:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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

 回到顶部
客人(222.248.*.*)
  9楼


  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:68 积分:583 威望:0 精华:0 注册:2016/9/8 23:24:00
  发帖心情 Post By: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

 回到顶部
总数 23 1 2 3 下一页