以文本方式查看主题 - 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 --
|
||||
-- 作者: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的发言:
请问如何在每个表的各自行关联各自的操作日志数据呢,我做到两个表后系统就报错,一直还没找到解决的办法,求大师指点妙招,另外如果修改的是电话号码,请问如何中间四位用*代替
请上传具体实例说明你的问题。 |