以文本方式查看主题

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

--  作者:lgj716330
--  发布时间:2021/9/12 14:06:00
--  [求助]全局表事件
在全局表事件的DataColChanged写了以下代码,
Select Case e.DataTable.Name
    Case "统计表A"
    If e.DataCol.Name = "姓名" Then
            Dim de As DataRow = e.DataRow
            Dim dr As DataRow
            dr = DataTables("档案表").find("姓名 = \'" & de("姓名") & "\'")
                If dr IsNot Nothing Then
                    de("部门")=dr("部门")
                End If
    End If
End Select

同时在Initialize中启动了全局表事件
For  Each dt  As  DataTable  In  DataTables
    dt.GlobalHandler.DataColChanged = True
Next

在统计表A中录入姓名后,没有从档案表中引部门过来,代码没起作用
[此贴子已经被作者于2021/9/12 14:09:07编辑过]

--  作者:有点蓝
--  发布时间:2021/9/12 20:31:00
--  
Initialize的代码仅对已经存在的表格有用,最新生成的表格没有用。新生成的表格(统计表、窗口sqltable表,或者fill,DataSource绑定的表)在生成后需要另外使用代码启用全局表事件,比如

Tables("窗口1_Table1").Fill("Select * From {客户} Where 地区 = \'华北\'","nwnd",True)
DataTables("窗口1_Table1").GlobalHandler.DataColChanged = True

--  作者:lgj716330
--  发布时间:2021/9/13 8:50:00
--  
都是已经存在的表,我使用的是自定义用户管理,会不会跟这个有关系
[此贴子已经被作者于2021/9/13 8:53:03编辑过]

--  作者:有点蓝
--  发布时间:2021/9/13 8:58:00
--  
应该没有关系,除非是登录后才加载的表