以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  页面集合权限控制  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=152220)

--  作者:北狐
--  发布时间:2020/7/9 19:24:00
--  页面集合权限控制

在项目事件上AfterOpenProject录入
If User.Type = UserTypeEnum.User Then
    For Each dr1 As DataRow In DataTables("用户分组").Select("用户名 = \'" & User.Name & "\'" )
        For Each dr As DataRow In DataTables("授权表").Select("用户组= \'" & dr1("用户组") & "\'" )
            Forms(dr("窗体")).Controls(dr("控件")).Enabled  = Not dr("不可编辑")            
            Forms(dr("窗体")).Controls(dr("页面")).TabPages(dr("页面名称")).Enabled = Not dr("不可见")
        Next
    Next
End If
弹二次窗分别报错如下
找不到名称为“”的控件!

.NET Framework 版本:2.0.50727.8806
Foxtable 版本:2018.10.9.1
错误所在事件:项目,AfterOpenProject
详细错误信息:
未设置对象变量或 With 块变量。


Forms(dr("窗体")).Controls(dr("页面")).TabPages(dr("页面名称")).Enabled = Not dr("不可见")
设置为如下具体就没报错

Forms("主界面").Controls("TabControl1").TabPages("销售管理").Visible = Not dr("不可见")
求老师帮忙看下


--  作者:有点蓝
--  发布时间:2020/7/9 20:16:00
--  
1、指定窗口不存在此控件名称
2、"控件"、"页面"列肯定有空值

最后窗口的控制不应该放到afteropenproject,而是放到各个窗口的afterload处理自己窗口的框架