以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口可见与授权  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93802)

--  作者:desk6789
--  发布时间:2016/12/7 14:28:00
--  窗口可见与授权
在主窗口中用到页面集合,怎么对特定用户授权页面可见??
--  作者:有点蓝
--  发布时间:2016/12/7 14:36:00
--  
参考:http://www.foxtable.com/webhelp/scr/0836.htm

afterload事件

If User.Name <> "张经理" Then
   
Dim pg As WinForm.TabPage
pg = Forms(
"窗口1").Controls("TabControl1").TabPages(1)
pg.Visible = 
False

    
End If

--  作者:desk6789
--  发布时间:2016/12/8 10:30:00
--  
如果设置为多部门不能看见页面集合中的某一Tabpages怎么写代码,但是要让开发者和管理员可以看见
--  作者:有点色
--  发布时间:2016/12/8 11:34:00
--  

If User.Type = UserTypeEnum.Developer OrElse User.Type = UserTypeEnum.Administrator Then
    Forms("窗口1").Controls("TabControl1").TabPages(1).Visible = true

Else

    Forms("窗口1").Controls("TabControl1").TabPages(1).Visible = False
End If


--  作者:desk6789
--  发布时间:2016/12/8 12:24:00
--  
哪里有问题?

If User.Type = UserTypeEnum.Developer OrElse User.Type = UserTypeEnum.Administrator OrElse User.group = "财务部" OrElse User.group = "总经办" Then
    Forms("主窗口").Controls("管理模块").TabPages(3).Visible = True
\'Else If User.Type = UserTypeEnum.Developer OrElse User.Type = UserTypeEnum.Administrator OrElse User.group = "销售部" OrElse User.group = "客服部" OrElse User.group = "贷后部" OrElse User.group = "总经办"  Then
   \' Forms("主窗口").Controls("管理模块").TabPages(0).Visible = True
    \'Else If User.Type = UserTypeEnum.Developer OrElse User.Type = UserTypeEnum.Administrator OrElse User.group = "人事部" OrElse User.group = "总经办"   Then
    \'    Forms("主窗口").Controls("管理模块").TabPages(1).Visible = True
    \'Else If User.Type = UserTypeEnum.Developer OrElse User.Type = UserTypeEnum.Administrator OrElse User.group = "行政部" OrElse User.group = "总经办"   Then
    \'    Forms("主窗口").Controls("管理模块").TabPages(2).Visible = True
Else
   \' Forms("主窗口").Controls("管理模块").TabPages(0).Visible = False
    \'    Forms("主窗口").Controls("管理模块").TabPages(1).Visible = False
    \'    Forms("主窗口").Controls("管理模块").TabPages(2).Visible = False
    Forms("主窗口").Controls("管理模块").TabPages(3).Visible = False
End If

--  作者:有点蓝
--  发布时间:2016/12/8 12:37:00
--  
代码写在哪里?提示什么错误?
--  作者:desk6789
--  发布时间:2016/12/8 14:36:00
--  
写在主窗口的afterload里了,现在用个最原始的代码
If User.group = "财务部" Then
    Forms("主窗口").Controls("管理模块").TabPages(0).Visible = False
    Forms("主窗口").Controls("管理模块").TabPages(1).Visible = False
    Forms("主窗口").Controls("管理模块").TabPages(2).Visible = False
End If

If User.group = "销售部" OrElse User.group = "客服部" OrElse User.group = "贷后部" Then
    Forms("主窗口").Controls("管理模块").TabPages(3).Visible = False
    Forms("主窗口").Controls("管理模块").TabPages(1).Visible = False
    Forms("主窗口").Controls("管理模块").TabPages(2).Visible = False
End If

If User.group = "人事部" Then
    Forms("主窗口").Controls("管理模块").TabPages(0).Visible = False
    Forms("主窗口").Controls("管理模块").TabPages(3).Visible = False
    Forms("主窗口").Controls("管理模块").TabPages(2).Visible = False
End If

If User.group = "行政部" Then
    Forms("主窗口").Controls("管理模块").TabPages(0).Visible = False
    Forms("主窗口").Controls("管理模块").TabPages(3).Visible = False
    Forms("主窗口").Controls("管理模块").TabPages(1).Visible = False
End If

--  作者:desk6789
--  发布时间:2016/12/8 14:37:00
--  
怎么简化???


--  作者:有点蓝
--  发布时间:2016/12/8 15:12:00
--  
Dim tab As WinForm.TabControl = Forms("主窗口").Controls("管理模块")
If not(If User.Type = UserTypeEnum.Developer OrElse User.Type = UserTypeEnum.Administrator) Then
    For Each page As WinForm.TabPage In tab.TabPages
        page.Visible = False
    Next
    Dim idx As Integer = -1
    Select Case
        Case "财务部"
            idx = 3
        Case "销售部" , "客服部" , "贷后部"
            idx = 0
        Case "人事部"
            idx = 1
        Case "行政部"
            idx = 2
    End Select
    tab.TabPages(idx).Visible = True
End If