以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  内部函数的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48747)

--  作者:小猪鑫鑫
--  发布时间:2014/4/4 10:19:00
--  内部函数的问题

Bin老师:我想把下面这段窗口权限代码写成一个函数,然后在每个需要权限控制的窗口的afterload事件中调用这个函数

 

 

For Each dr As DataRow In DataTables("SY系统权限表").Select("分组名称 = \'" & User.name & "\'" )

    If dr.IsNull("按扭名") =False Then

        e.Form.Controls(dr("按扭名")).Visible = Not dr("不可见")

        e.Form.Controls(dr("按扭名")).Enabled = Not dr("不可用")

    End If

Next

 

但是我不会写这个函数,同时窗口的afterload事件中怎么样调用这个函数,我搞了好久了,搞不定,请您帮我!


--  作者:逛逛
--  发布时间:2014/4/4 10:25:00
--  

 

Dim e as Object = Args(0)

For Each dr As DataRow In DataTables("SY系统权限表").Select("分组名称 = \'" & User.name & "\'" )

    If dr.IsNull("按扭名") =False Then

        e.Form.Controls(dr("按扭名")).Visible = Not dr("不可见")

        e.Form.Controls(dr("按扭名")).Enabled = Not dr("不可用")

    End If

Next

 

 

Functions.Execute(函数名,e)


--  作者:lsy
--  发布时间:2014/4/4 10:29:00
--  
以下是引用逛逛在2014-4-4 10:25:00的发言:

 

Dim e as Object = Args(0)

For Each dr As DataRow In DataTables("SY系统权限表").Select("分组名称 = \'" & User.name & "\'" )

    If dr.IsNull("按扭名") =False Then

        e.Form.Controls(dr("按扭名")).Visible = Not dr("不可见")

        e.Form.Controls(dr("按扭名")).Enabled = Not dr("不可用")

    End If

Next

 

 

Functions.Execute(函数名,e)

关键就在这个小姨子(e)。


--  作者:逛逛
--  发布时间:2014/4/4 10:33:00
--  

图片点击可在新窗口打开查看

 

 

不过,通用函数还是多加一些必要的检查为好,如控件是否存在,否则一不小心就出错。


--  作者:小猪鑫鑫
--  发布时间:2014/4/4 10:34:00
--  

谢谢逛逛,非常好,谢谢