Foxtable(狐表)用户栏目专家坐堂 → 窗口界面授权显示


  共有3494人关注过本帖树形打印复制链接

主题:窗口界面授权显示

帅哥哟,离线,有人找我吗?
北狐
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
窗口界面授权显示  发帖心情 Post By:2021/3/15 15:58:00 [只看该作者]

If User.Type = 3 Then
    For Each c As Winform.Control In e.Form.Controls
        c.Visible = False
    Next
    
    Dim dr1 As DataRow = DataTables("Users").Find("Name = '" & User.Name & "'")
    
    
    For Each dr2 As DataRow In DataTables("授权表").Select("用户组  like '%"&dr1("roleCode")& "%'")
        Forms("主界面").Controls(dr2("窗体")).TabPages(dr2("页面名称")).Visible = True
    Next
    
    For Each dr As DataRow In DataTables("授权表").Select("用户组 like '%"&dr1("roleCode")& "%'and 控件<>''") '
        Forms("主界面").Controls(dr("控件")).Visible  = True
    Next
    
End If
想做到默认所有控件不显示,再依据授权表的进行控件的显示,
但以上代码结果是所有控件都不显示,未根据授权表时进行显示控件
求老师帮忙看下是什么原因?

[此贴子已经被作者于2021/3/15 16:14:51编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/15 16:24:00 [只看该作者]

    For Each c As Winform.Control In e.Form.Controls
        c.Visible = False
    Next
上面代码是把所有控件全部隐藏了,包括容器,检查一下授权表设置有没有对容器控件的控制?
比如有一个panel,panel里面有一个textbox,上面代码panel和textbox都会影响了,那么授权表里有没有panel的设置?还是只有textbox的设置?
如果panel1里有panel2,panel2里有panel3,panel3里有.......那么panel1、panel2、panel3、...都要在授权表设置

 回到顶部
帅哥哟,离线,有人找我吗?
北狐
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2021/3/15 16:28:00 [只看该作者]

没有用到panel,但有用到textbox,授权表里面没设置
[此贴子已经被作者于2021/3/15 16:29:43编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/15 16:41:00 [只看该作者]

那就是DataTables("授权表").Select没有查询到符合条件的数据

 回到顶部
帅哥哟,离线,有人找我吗?
北狐
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2021/3/15 16:58:00 [只看该作者]

DataTables("授权表").Select条件能查到
但有用到TabControl,

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/15 17:04:00 [只看该作者]

TabControl在授权表设置了吗?理由看2楼

 回到顶部
帅哥哟,离线,有人找我吗?
北狐
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2021/3/15 17:12:00 [只看该作者]

有授权设置了,但能不能控制TabControl的对应页面的授权显示,而不是整个TabControl都显示出来的,每个页面都有独立名称的
[此贴子已经被作者于2021/3/15 17:12:50编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/15 17:16:00 [只看该作者]

请上传实例说明

 回到顶部
帅哥哟,离线,有人找我吗?
北狐
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2021/3/15 18:33:00 [只看该作者]

找到原因了,代码改下面就实现了
If User.Type = 3 Then
    For Each c As Winform.Control In e.Form.Controls
        c.Visible = False
        Forms("主界面").Controls("主界面").Visible = True
'标签控件
Forms("主界面").Controls("Label01").Visible = True
Forms("主界面").Controls("Label1").Visible = True
Forms("主界面").Controls("Label10").Visible = True
Forms("主界面").Controls("Label11").Visible = True
Forms("主界面").Controls("Label12").Visible = True
Forms("主界面").Controls("Label13").Visible = True
Forms("主界面").Controls("Label4").Visible = True
Forms("主界面").Controls("Label5").Visible = True
Forms("主界面").Controls("Label6").Visible = True
Forms("主界面").Controls("Label7").Visible = True
Forms("主界面").Controls("Label8").Visible = True
Forms("主界面").Controls("Label9").Visible = True
'日期控件
Forms("主界面").Controls("StartDate").Visible = True
Forms("主界面").Controls("EndDate").Visible = True
Forms("主界面").Controls("StartDate1").Visible = True
Forms("主界面").Controls("EndDate1").Visible = True
Forms("主界面").Controls("StartDate2").Visible = True
Forms("主界面").Controls("EndDate2").Visible = True
Forms("主界面").Controls("StartDate3").Visible = True
Forms("主界面").Controls("EndDate3").Visible = True
'文本框控件
Forms("主界面").Controls("cmbCustomer").Visible = True
Forms("主界面").Controls("pr").Visible = True
Forms("主界面").Controls("smartI").Visible = True
Forms("主界面").Controls("TextBox1").Visible = True      
        Dim dr1 As DataRow = DataTables("Users").Find("Name = '" & User.Name & "'") 
      
        For Each dr2 As DataRow In DataTables("授权表").Select("(用户组 not like '%"&dr1("roleCode")& "%' or  用户组 is null)  and 控件名称 is null ")
            Forms("主界面").Controls(dr2("窗体")).TabPages(dr2("页面名称")).Visible = False
        Next
        
        
        For Each dr As DataRow In DataTables("授权表").Select("用户组 like '%"&dr1("roleCode")& "%'and 控件<>''") '
            Forms("主界面").Controls(dr("控件")).Visible  = True
        Next
    Next
End If

 回到顶部