以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  “数据操作日志”表中的“原行数据”列,能不能让这一列显示修改前的行数据?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=132371)

--  作者:fengwenliuyan
--  发布时间:2019/3/20 18:14:00
--  “数据操作日志”表中的“原行数据”列,能不能让这一列显示修改前的行数据?
“数据操作日志”表中的“原行数据”列,现在现在显示的却是行修改后的内容,能不能让这一列显示修改前的行数据?



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

--  作者:有点甜
--  发布时间:2019/3/20 22:15:00
--  

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

 

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


--  作者:fengwenliuyan
--  发布时间:2019/3/21 10:37:00
--  回复:(有点甜)1、如果需要3天后再进行,你需要加入...
这样写可以吗?

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
--  发布时间:2019/3/21 10:42:00
--  回复:(有点甜)1、如果需要3天后再进行,你需要加入...



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

--  作者:有点蓝
--  发布时间:2019/3/21 11:01:00
--  
str += c.Name & "=" & e.DataRow.OriginalValue(c.Name) & "|"
--  作者:fengwenliuyan
--  发布时间:2019/3/21 11:27:00
--  回复:(有点蓝)str += c.Name & "=" & e.Da...
谢谢老师!这样应该就可以了!
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