以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]全局表事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94397)

--  作者:kaiyu
--  发布时间:2016/12/22 16:39:00
--  [求助]全局表事件

我在项目的全局表事件datacolchanged 下写了如下代码

If e.DataTable.DataCols.Contains("_identify")
    Dim r As DataRow = DataTables("SY系统日志记录表").AddNew
    r("操作类型") = "更新操作"
    r("操作表名") = e.DataTable.Name
    r("操作列名") = e.DataCol.Name
    r("操作行号") = e.DataRow("_identify")
    r("旧值") = e.OldValue
    r("新值") = e.NewValue
    r.save
  End If

Initialize项目表事件代码

For Each dt As DataTable In DataTables  \'打开全局表删除表事件,用于记录所有表删除修改记录信息
    dt.GlobalHandler.DataRowDeleting = True
    dt.GlobalHandler.BeforeSaveDataRow = True
    dt.GlobalHandler.DataColChanged = True
Next

为什么全局表事件没有运行呢,在日志表中没有发现新增数据


--  作者:有点色
--  发布时间:2016/12/22 16:42:00
--  

 你把这段代码,单独在命令窗口运行一次

 

For Each dt As DataTable In DataTables  \'打开全局表删除表事件,用于记录所有表删除修改记录信息
    dt.GlobalHandler.DataRowDeleting = True
    dt.GlobalHandler.BeforeSaveDataRow = True
    dt.GlobalHandler.DataColChanged = True
Next


--  作者:kaiyu
--  发布时间:2016/12/22 16:51:00
--  
运行过了,不行
--  作者:有点色
--  发布时间:2016/12/22 16:53:00
--  

1、datacolchanged 第一行加上 msgbox(e.DataCol.name)

 

2、去任意一个表修改值测试。


--  作者:baicaocao
--  发布时间:2016/12/22 21:25:00
--  
 建议用保存前验证事件。
--  作者:有点蓝
--  发布时间:2016/12/23 8:27:00
--  
如果是窗口sqltable的表,在窗口afterload事件设置一下GlobalHandler
--  作者:kaiyu
--  发布时间:2016/12/23 16:27:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:全局表事件.foxdb

帮我看看在表A或表B修改,在表C为什么没有新增数据


--  作者:狐狸爸爸
--  发布时间:2016/12/23 16:32:00
--  
主键不包括再DataCols集合中,改为:

If e.DataTable.baseTable.Columns.Contains("_Identify")
    If e.DataTable.Name <> "表C"
        Dim r As DataRow = DataTables("表C").AddNew
        r("操作类型") = "更新操作"
        r("操作表名") = e.DataTable.Name
        r("操作列名") = e.DataCol.Name
        r("操作行号") = e.DataRow("_identify")
        r("旧值") = e.OldValue
        r("新值") = e.NewValue
        r.save
    End If
End If

--  作者:狐狸爸爸
--  发布时间:2016/12/23 16:33:00
--  
要学会调试分析:
http://www.foxtable.com/webhelp/scr/1485.htm