以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  在全局表事件中设置的代码为什么不起作用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88280)

--  作者:kaituozhe
--  发布时间:2016/7/30 16:16:00
--  在全局表事件中设置的代码为什么不起作用

在全局表事件PrepareEdit

If e.Row.DataRow.IsNull("审核") = False Then \'如果审批列不为空
    e.Cancel = True \'则禁止编辑
End If

在项目事件中设置了如下代码,

For Each dt As DataTable In DataTables
    dt.GlobalHandler.PrepareEdit = True
    dt.GlobalHandler.BeforeMoveRow = True
    dt.GlobalHandler.BeforeDeleteDataRow = True
    dt.GlobalHandler.AfterLoad = True
Next

项目中的每个表只已经审核,就禁止修改,为什么不起作用呢,用的是SQL数据库作为数据源。


--  作者:Hyphen
--  发布时间:2016/7/30 16:30:00
--  
如果是sqltable窗口表,在窗口afterload事设置

Datatables("窗口1_Table1").GlobalHandler.PrepareEdit = True

--  作者:kaituozhe
--  发布时间:2016/7/30 17:09:00
--  
所有窗口中的表都需要这样吗?目前窗口中表涉及到100多个,不在窗口中的表也有几十个,有没有办法统一设置,只能一个一个表设置吗?
--  作者:kaituozhe
--  发布时间:2016/7/30 17:10:00
--  

窗口中表都是副本的Normal型Table


--  作者:kaituozhe
--  发布时间:2016/7/30 17:13:00
--  
是否是表太多了,在例子中只有3个表,按1楼的方法没有问题,例子中的数据库用的是ACCess
--  作者:Hyphen
--  发布时间:2016/7/30 17:34:00
--  
只要是动态生成的表都需要生成后设置一次。按2楼的方式试试行不行。
--  作者:kaituozhe
--  发布时间:2016/7/30 17:57:00
--  
2楼的代码每个窗口表都需要那样做吗?
--  作者:大红袍
--  发布时间:2016/7/31 10:21:00
--  
以下是引用kaituozhe在2016/7/30 17:57:00的发言:
2楼的代码每个窗口表都需要那样做吗?

 

窗口表,是窗口打开的时候,才生成的,要在生成之后,绑定全局表事件,才行。