以文本方式查看主题

-  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=105373)

--  作者:scofields
--  发布时间:2017/8/17 23:02:00
--  关于修改记录保存到列中
老师,这段代码怎么修改?我想实现只要不是新增行,其他行的数据有变动,全部将原始值与变动值记录在Log列中

Dim dt As DataTable = DataTables("系统初始化")
For Each dr As DataRow In dt.DataRows
    If dr.RowState = DataRowState.Added Then
         e.DataRow("区域报表系统初始化_Log") = ""
Else
     e.DataRow("区域报表系统初始化_Log") &= vbcrlf & Date.now & " " & user.name & " 把【" & e.DataCol.Name & "】从\'" & e.OldValue & "\'修改成 \'" & e.NewValue & "\'"
    End If
Next

--  作者:有点甜
--  发布时间:2017/8/17 23:15:00
--  

DataColChanged事件

 

If e.datarow.RowState = DataRowState.Added Then
    e.DataRow("区域报表系统初始化_Log") = ""
Else
    e.DataRow("区域报表系统初始化_Log") &= vbcrlf & Date.now & " " & user.name & " 把【" & e.DataCol.Name & "】从\'" & e.OldValue & "\'修改成 \'" & e.NewValue & "\'"
End If


--  作者:scofields
--  发布时间:2017/8/17 23:51:00
--  
老师,出现了这个问题哦
.NET Framework 版本:2.0.50727.8689
Foxtable 版本:2017.8.18.1
错误所在事件:表,系统初始化,DataColChanged
详细错误信息:
调用的目标发生了异常。
引发类型为“System.OutOfMemoryException”的异常。


--  作者:有点甜
--  发布时间:2017/8/18 8:41:00
--  
 贴出你对应datacolchanged的事件代码。
--  作者:scofields
--  发布时间:2017/8/18 10:01:00
--  

If e.datarow.RowState = DataRowState.Added  andalso e.DataCol.name <> "区域报表系统初始化_Log" Then
    e.DataRow("区域报表系统初始化_Log") = ""
Else
    e.DataRow("区域报表系统初始化_Log") &= vbcrlf & Date.now & " " & user.name & " 把【" & e.DataCol.Name & "】从\'" & e.OldValue & "\'修改成 \'" & e.NewValue & "\'"
End If



--  作者:有点甜
--  发布时间:2017/8/18 10:06:00
--  

If e.DataCol.name <> "区域报表系统初始化_Log" Then
    If e.DataRow.RowState = DataRowState.Added Then
        e.DataRow("区域报表系统初始化_Log") = ""
    Else
        e.DataRow("区域报表系统初始化_Log") &= vbcrlf & Date.now & " " & user.name & " 把【" & e.DataCol.Name & "】从\'" & e.OldValue & "\'修改成 \'" & e.NewValue & "\'"
    End If
   
End If