以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动态重新定义table代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48734)

--  作者:arthurshoe
--  发布时间:2014/4/3 23:00:00
--  动态重新定义table代码
有一个table的副本,希望重新prepareedit事件的代码要怎么写?因为在控件table里没有办法选择prepare事件定义。
希望在主表和副本的prepareedit执行的代码是不一样的。
Tables("副本table").prepareedit=????
请高手帮忙!
[此贴子已经被作者于2014-4-3 23:03:38编辑过]

--  作者:菲舍尔
--  发布时间:2014/4/4 1:24:00
--  

用全局代码来设定

 

在项目属性的全局代码中的prepareedit事件中写:

 

if e.table.name ="表名" then

   ’你的代码

 

end if

 

 

然后,你使用tables("副本表")之前,加一条语句

tables(“副本表”)。datatable。globalhandler。prepareedit = true

 


--  作者:lsy
--  发布时间:2014/4/4 7:41:00
--  

PrepareEdit

If e.Table.TableType = TableTypeEnum.Normal Then
    If  e.Table.IsCopy Then
        e.Row(e.Col) = "副表"
    Else
        e.Row(e.Col) = "主表"
    End If
End If


--  作者:arthurshoe
--  发布时间:2014/4/4 9:41:00
--  
非常感谢!可以解决问题!
但是除了globalhandler还有其他方法吗?因为这个不是全局都需要的一个行为。
我查了一下有一个 Functions.add的可以动态定义函数,但是怎么把这个定义好的函数指向table的prepareedit事件了?不知道有没有什么类似handler这个属性可以用?

--  作者:Bin
--  发布时间:2014/4/4 9:42:00
--  
呵呵,还是用现在这个方案最安逸, 你不用纠结了.
--  作者:arthurshoe
--  发布时间:2014/4/4 19:20:00
--  
谢谢,没有更好的办法了吗?
其实不只是为prepareedit,主要是以后在代码里面怎么动态加载table的触发事件。。。
请高手帮忙!