以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何像系统日志一样记录登录后的所有操作?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=113822)

--  作者:kaixin2018
--  发布时间:2018/1/23 17:37:00
--  [求助]如何像系统日志一样记录登录后的所有操作?
 请问下:

如何像系统日志一样记录每个用户登录后的所有操作?

--  作者:有点甜
--  发布时间:2018/1/23 17:39:00
--  
下载信息  [文件大小:312.0 KB  下载次数:22]
图片点击可在新窗口打开查看点击浏览该文件:操作日志2017.table

--  作者:kaixin2018
--  发布时间:2018/1/25 16:40:00
--  
 非常感谢有点甜,我理解了思路:
1)先通过项目属性事件设置全局表事件;
2)通过全局表事件进行仔细设置。

对于表的操作不仅仅是示例的两类,所有的事件应该是都可以设置的吧?

如果用户不小心在修改后把表也保存了,那我如果要恢复数据只能通过对照操作日志一点点修复吗?有其它思路?谢谢


--  作者:有点甜
--  发布时间:2018/1/25 17:17:00
--  

1、所有事件都可以设置,但修改数据基本就只是那几个事件而已。

 

2、恢复数据的问题。日志不是保存了各列的数据么?如果需要恢复,就做个按钮,勾选需要恢复的行,把字符串拆分出来,还原回去。


--  作者:188802386
--  发布时间:2018/1/27 18:36:00
--  
为什么要AfterOpenProject事件加上以下代码,

 

For Each dt As DataTable In DataTables

    dt.GlobalHandler.DataColChanged = True

    dt.GlobalHandler.DataRowAdded = True

Next

还有DataColChanged事件为什么要增加红色部分,如果列状态为锁定,是不是就不添加记录了呢

 

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

    If e.DataRow.RowState = 2 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


--  作者:188802386
--  发布时间:2018/1/27 18:48:00
--  
请问如何在每个表的各自行关联各自的操作日志数据呢,我做到两个表后系统就报错,一直还没找到解决的办法,求大师指点妙招,另外如果修改的是电话号码,请问如何中间四位用*代替
--  作者:有点甜
--  发布时间:2018/1/28 14:40:00
--  

回复5楼

 

http://www.foxtable.com/webhelp/scr/0671.htm

 

http://www.foxtable.com/webhelp/scr/0428.htm

 


--  作者:有点甜
--  发布时间:2018/1/28 14:41:00
--  
以下是引用188802386在2018/1/27 18:48:00的发言:
请问如何在每个表的各自行关联各自的操作日志数据呢,我做到两个表后系统就报错,一直还没找到解决的办法,求大师指点妙招,另外如果修改的是电话号码,请问如何中间四位用*代替

 

请上传具体实例说明你的问题。