以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  DataColChanged的NewValue与OldValue  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=196432)

--  作者:YDS
--  发布时间:2025/4/26 13:58:00
--  DataColChanged的NewValue与OldValue

DataColChanged

某一列的内容被更改后执行,此时列的内容已经是更改后的值。

e参数属性:

NewValue: Object类型,表示新的值
OldValue: Object类型,表示旧的值


【项目管理】表DataColChanged代码如下


Select Case e.DataCol.Name

    Case "任务类型", "任务内容", "优先级", "开始日期", "预计完成_日期1", "预计完成_日期2", "实际完成时间", "处理人", "任务状态", "任务信息", "原因"

        If e.DataRow.IsNull("LOG") Then

            e.DataRow("LOG") = "【" & User.Name & "】 在 【" & Date.now & "】 把列 【" & e.DataCol.Name & "】 的值由 【" & e.OldValue & "】 改为 【" & e.NewValue & "】。"

        Else

            e.DataRow("LOG") = e.DataRow("LOG") & vbCrLf & "【" & User.Name & "】 在 【" & Date.now & "】 把列 【" & e.DataCol.Name & "】 的值由 【" & e.OldValue & "】 改为 【" & e.NewValue & "】。"

        End If 

        e.DataRow.Save

End Select


图片点击可在新窗口打开查看


【陆】 在 【2025-04-25 16:32:33】 把列 【预计完成_日期1】 的值由 【2025-04-25】 改为 【2025-04-25】

【陆】 在 【2025-04-25 16:37:38】 把列 【预计完成_日期1】 的值由 【2025-04-25】 改为 【2025-04-25】

【张】 在 【2025-04-25 16:43:26】 把列 【预计完成_日期1】 的值由 【2025-04-25】 改为 【2025-04-25】

【张】 在 【2025-04-25 16:46:31】 把列 【预计完成_日期1】 的值由 【2025-04-25】 改为 【2025-04-25】

【陆】 在 【2025-04-25 16:48:26】 把列 【预计完成_日期1】 的值由 【2025-04-25】 改为 【2025-04-25】

【吴】 在 【2025-04-25 16:48:31】 把列 【预计完成_日期1】 的值由 【2025-04-25】 改为 【2025-04-25】

【张】 在 【2025-04-25 16:49:38】 把列 【预计完成_日期1】 的值由 【2025-04-25】 改为 【2025-04-25】

【张】 在 【2025-04-25 16:49:41】 把列 【预计完成_日期1】 的值由 【2025-04-25】 改为 【2025-04-25】

【陆】 在 【2025-04-25 16:51:41】 把列 【预计完成_日期1】 的值由 【2025-04-25】 改为 【2025-04-25】

【张】 在 【2025-04-25 17:00:46】 把列 【预计完成_日期1】 的值由 【2025-04-25】 改为 【2025-04-25】


为什么会出现以上的log记录,OldValue和NewValue一样的时候为什么也会触发DataColChanged事件?


--  作者:有点蓝
--  发布时间:2025/4/26 15:07:00
--  
我测试不会有这种情况。请上传实例说明
--  作者:程兴刚
--  发布时间:2025/4/26 23:12:00
--  
此2025-04-25非彼2025-04-25,原因,请将该日期时间列属性的日期时间格式改为date试试