Foxtable(狐表)用户栏目专家坐堂 → “数据操作日志”表中的“原行数据”列,能不能让这一列显示修改前的行数据?


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

主题:“数据操作日志”表中的“原行数据”列,能不能让这一列显示修改前的行数据?

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


加好友 发短信
等级:四尾狐 帖子:902 积分:8258 威望:0 精华:0 注册:2012/10/19 13:55:00
“数据操作日志”表中的“原行数据”列,能不能让这一列显示修改前的行数据?  发帖心情 Post By:2019/3/20 18:14:00 [只看该作者]

“数据操作日志”表中的“原行数据”列,现在现在显示的却是行修改后的内容,能不能让这一列显示修改前的行数据?



能否将操作日志记录的对象,前提设置为:
当前行数据录入保存的3天后再进行,或者,对“结单”列为true的行进行修改时才进行日志记录?
[此贴子已经被作者于2019/4/30 9:58:03编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 22:15:00 [只看该作者]

1、如果需要3天后再进行,你需要加入一列【录入时间】,用它来和今天比较;

 

2、你在记录的事件那里,加入一个条件,如 If dr("结单") = true Then 即可。


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


加好友 发短信
等级:四尾狐 帖子:902 积分:8258 威望:0 精华:0 注册:2012/10/19 13:55:00
回复:(有点甜)1、如果需要3天后再进行,你需要加入...  发帖心情 Post By:2019/3/21 10:37:00 [只看该作者]

这样写可以吗?

If e.DataTable.Name <> "数据操作日志" Then
    If e.DataRow.RowState = 2 Or e.DataRow("结单") = False Then
        Return
    Else
        Dim dr As DataRow = DataTables("数据操作日志").AddNew
        dr("ID") = e.DataRow("_Identify")
        dr("用户") = User.Name
        dr("涉及表") = e.DataTable.Name
        dr("涉及列") = e.DataCol.Name
        dr("涉及行") = e.DataRow("_Identify")
        dr("时间") = Date.Now
        dr("操作") = """" & e.OldValue &  """ 改成了 """ & e.NewValue & """"
        Dim str As String = ""
        For Each c As DataCol In e.DataTable.DataCols
            str += c.Name & "=" & e.DataRow(c.Name) & "|"
        Next
        dr("原行数据") = str
    End If
End If

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


加好友 发短信
等级:四尾狐 帖子:902 积分:8258 威望:0 精华:0 注册:2012/10/19 13:55:00
回复:(有点甜)1、如果需要3天后再进行,你需要加入...  发帖心情 Post By:2019/3/21 10:42:00 [只看该作者]




[此贴子已经被作者于2019/4/30 9:58:14编辑过]

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/21 11:01:00 [只看该作者]

str += c.Name & "=" & e.DataRow.OriginalValue(c.Name) & "|"

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


加好友 发短信
等级:四尾狐 帖子:902 积分:8258 威望:0 精华:0 注册:2012/10/19 13:55:00
回复:(有点蓝)str += c.Name & "=" & e.Da...  发帖心情 Post By:2019/3/21 11:27:00 [只看该作者]

谢谢老师!这样应该就可以了!
If e.DataTable.Name <> "数据操作日志" Then
    If e.DataRow.RowState = 2 Or e.DataRow("结单") = False Then
        Return
    Else
        Dim dr As DataRow = DataTables("数据操作日志").AddNew
        dr("ID") = e.DataRow("_Identify")
        dr("用户") = User.Name
        dr("涉及表") = e.DataTable.Name
        dr("涉及列") = e.DataCol.Name
        dr("涉及行") = e.DataRow("_Identify")
        dr("时间") = Date.Now
        dr("操作") = """" & e.OldValue &  """ 改成了 """ & e.NewValue & """"
        Dim str As String = ""
        Dim str1 As String = ""
        For Each c As DataCol In e.DataTable.DataCols
            str += c.Name & "=" & e.DataRow.OriginalValue(c.Name) & "|"
            str1 += c.Name & "=" & e.DataRow(c.Name) & "|"
        Next
        dr("原行数据") = str
        dr("改后数据") = str1
    End If
End If

 回到顶部