Foxtable(狐表)用户栏目专家坐堂 → [求助]为什么操作日志生成的原行数据是修改后的?


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

主题:[求助]为什么操作日志生成的原行数据是修改后的?

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


加好友 发短信
等级:小狐 帖子:344 积分:3493 威望:0 精华:0 注册:2015/8/16 19:06:00
[求助]为什么操作日志生成的原行数据是修改后的?  发帖心情 Post By:2016/5/11 8:04:00 [只看该作者]

项目事件

 

MainTableChanged

 

For Each dt As DataTable In DataTables

    dt.GlobalHandler.DataColChanged = True

Next


全局表事件

 

DataColChanged

 

If e.DataTable.Name <> "数据操作日志" Then

    If e.DataRow.RowState = 2 Then

MessageBox.Show(e.DataRow.RowState)

        Return

    Else

MessageBox.Show(e.DataRow.RowState)

        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



为什么生成的“原行数据”是修改后的,而不是修改以前的数据?


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/5/11 8:45:00 [只看该作者]

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

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/5/11 8:47:00 [只看该作者]

这种操作日志建议写到BeforeSaveDataRow事件,效率高点

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/11 9:26:00 [只看该作者]

Dim str As String = ""

For Each c As DataCol In e.DataTable.DataCols
    If c.name = e.DataCol.name Then
        str += c.Name & "=" & e.oldvalue & "|"
    Else
        str += c.Name & "=" & e.DataRow(c.Name) & "|"
    End If
   
Next

dr("原行数据") = str


 回到顶部