Foxtable(狐表)用户栏目专家坐堂 → 操作动作记录


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

主题:操作动作记录

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


加好友 发短信
等级:幼狐 帖子:137 积分:1380 威望:0 精华:0 注册:2017/5/19 17:25:00
操作动作记录  发帖心情 Post By:2018/9/10 11:03:00 [只看该作者]

老师你好,如何让系统自动记录某个用户对系统所做的操作,比如插入行,删除第几行,修改第几行第几列,点击某个重要的按钮等等。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/10 11:22:00 [只看该作者]

看看

 

下载信息  [文件大小:312.0 KB  下载次数:22]
图片点击可在新窗口打开查看点击浏览该文件:操作日志2017.table


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


加好友 发短信
等级:幼狐 帖子:137 积分:1380 威望:0 精华:0 注册:2017/5/19 17:25:00
  发帖心情 Post By:2018/9/10 17:37:00 [只看该作者]

谢谢老师,就是这种,如何实现的,还有可以记录窗口中一些按钮的动作不,如果不好实现,也可以把按钮的动作先转换到一个表里面,然后用你这种方式来实现。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/10 17:39:00 [只看该作者]

以下是引用15528900289在2018/9/10 17:37:00的发言:
谢谢老师,就是这种,如何实现的,还有可以记录窗口中一些按钮的动作不,如果不好实现,也可以把按钮的动作先转换到一个表里面,然后用你这种方式来实现。

 

你需要在按钮的click事件那里或者窗口的click事件那里,写代码记录。


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


加好友 发短信
等级:幼狐 帖子:137 积分:1380 威望:0 精华:0 注册:2017/5/19 17:25:00
  发帖心情 Post By:2018/9/10 17:43: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

全部表事件:Datarowadded
If e.DataTable.Name <> "数据操作日志" Then
    Dim dr As DataRow = DataTables("数据操作日志").AddNew
    dr("ID") = e.DataRow("_Identify")
    dr("用户") = User.Name
    dr("涉及表") = e.DataTable.Name
    dr("涉及列") = Nothing
    dr("涉及行") = e.DataRow("_Identify")
    dr("时间") = Date.Now
    dr("操作") = "增加了一行"
    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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/10 18:13:00 [只看该作者]

2楼的例子,是新增行、修改行的时候,记录的。

 

你要看懂例子,根据你的需求,额外增加代码。


 回到顶部