以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 窗口界面授权显示 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=161374) |
-- 作者:北狐 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间: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、...都要在授权表设置
|
-- 作者:北狐 -- 发布时间:2021/3/15 16:28:00 -- 没有用到panel,但有用到textbox,授权表里面没设置 [此贴子已经被作者于2021/3/15 16:29:43编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/3/15 16:41:00 -- 那就是DataTables("授权表").Select没有查询到符合条件的数据 |
-- 作者:北狐 -- 发布时间:2021/3/15 16:58:00 -- DataTables("授权表").Select条件能查到 但有用到TabControl,
|
-- 作者:有点蓝 -- 发布时间:2021/3/15 17:04:00 -- TabControl在授权表设置了吗?理由看2楼 |
-- 作者:北狐 -- 发布时间:2021/3/15 17:12:00 -- 有授权设置了,但能不能控制TabControl的对应页面的授权显示,而不是整个TabControl都显示出来的,每个页面都有独立名称的 [此贴子已经被作者于2021/3/15 17:12:50编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/3/15 17:16:00 -- 请上传实例说明 |
-- 作者:北狐 -- 发布时间: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
|