Foxtable(狐表)用户栏目专家坐堂 → [求助]求助在操作日志中记录删除行的信息?


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

主题:[求助]求助在操作日志中记录删除行的信息?

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


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
[求助]求助在操作日志中记录删除行的信息?  发帖心情 Post By:2018/11/20 21:59:00 [只看该作者]

 

一、在项目属性的全局表事件中,想在“数据操作日志”中记录删除行的信息,我在“DataRowDeleteting”中写下如下代码,但提示错误,请各位大师帮助修改,谢谢!!

 

If e.DataTable.Name <> "数据操作日志" Then
    Dim dr As DataRow = DataTables("数据操作日志").Delete

    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

 

二、想根据不同用户,限止对不同表格的编辑权限,我在全局事件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

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


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/20 22:17:00 [只看该作者]

一、
Dim dr As DataRow = DataTables("数据操作日志").Delete

改为

Dim dr As DataRow = DataTables("数据操作日志").addnew

二、DataColChanged代码能够控制编辑权限?不可能的。


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/20 22:19:00 [只看该作者]

For Each dt As DataTable In DataTables
    dt.GlobalHandler.DataColChanged = True
    dt.GlobalHandler.DataRowAdded = True
    dt.GlobalHandler.DataRowDeleteting = true
Next

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


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2018/11/20 23:31:00 [只看该作者]

谢谢大师,可下面这段代码提示编译错误,“DataRowDeleteting”不是“GlobalEvents”的成员,该怎么办?

For Each dt As DataTable In DataTables
    dt.GlobalHandler.DataColChanged = True
    dt.GlobalHandler.DataRowAdded = True
    dt.GlobalHandler.DataRowDeleteting = true
Next


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


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

改成

 

For Each dt As DataTable In DataTables
    dt.GlobalHandler.DataColChanged = True
    dt.GlobalHandler.DataRowAdded = True
    dt.GlobalHandler.DataRowDeleting = True
Next


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


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2018/11/21 13:00:00 [只看该作者]

谢谢大师,目的达到,问题解决了!!!

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


加好友 发短信
等级:七尾狐 帖子:1578 积分:13038 威望:0 精华:0 注册:2009/6/16 7:30:00
  发帖心情 Post By:2019/3/10 19:21:00 [只看该作者]

删除多行如何在日志中记录信息?

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


加好友 发短信
等级:七尾狐 帖子:1578 积分:13038 威望:0 精华:0 注册:2009/6/16 7:30:00
  发帖心情 Post By:2019/3/10 19:37:00 [只看该作者]

删除多行时,会报错。

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


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

以下是引用playmal在2019/3/10 19:37:00的发言:
删除多行时,会报错。

 

出错实例发上来测试


 回到顶部