以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于窗口CANEDIT的分用户识别 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49857) |
-- 作者:wealthwind -- 发布时间:2014/4/24 23:03:00 -- 关于窗口CANEDIT的分用户识别 有一个窗口,有很多个控件,然后有四个角色,分别是“区域主管”、”行销部主管“、”行销部经理“、”BOSS“ 我希望达到的效果是,根据不同用户登录,识别该用户可用的控件,其他控件锁死;;如果通过IF代码,达到这样的效果; 我自己编了一段代码,但是实现不了,请老师给予指点;;;; Dim CanEdit As Boolean = (user.roles = "区域主管") \' 如果是角色,请改用user.roles e.Form.Controls("Button5").Enabled = CanEdit e.Form.Controls("Button3").Enabled = CanEdit e.Form.Controls("Button1").Enabled = CanEdit e.Form.Controls("Button4").Enabled = CanEdit e.Form.Controls("textbox4").Enabled = CanEdit Dim CanEdit As Boolean = (user.roles = "行销部主管") \' 如果是角色,请改用user.roles e.Form.Controls("TextBox5").Enabled = CanEdit e.Form.Controls("DateTimePicker2").Enabled = CanEdit e.Form.Controls("Button6").Enabled = CanEdit e.Form.Controls("Button7").Enabled = CanEdit Dim CanEdit As Boolean = (user.roles = "行销部经理") \' 如果是角色,请改用user.roles e.Form.Controls("TextBox6").Enabled = CanEdit e.Form.Controls("DateTimePicker3").Enabled = CanEdit e.Form.Controls("Button8").Enabled = CanEdit e.Form.Controls("Button9").Enabled = CanEdit Dim CanEdit As Boolean = (user.roles = "boss") \' 如果是角色,请改用user.roles e.Form.Controls("TextBox2").Enabled = CanEdit e.Form.Controls("DateTimePicker1").Enabled = CanEdit e.Form.Controls("Button10").Enabled = CanEdit e.Form.Controls("Button11").Enabled = CanEdit 如果将以上代码,结合成一个逻辑性的代码???
|
-- 作者:lsy -- 发布时间:2014/4/25 8:03:00 -- 试试: For Each s As String In "Button1|Button3|Button4|Button5|Button6|Button7|Button8|Button9|Button10|Button11|DateTimePicker1|DateTimePicker2|DateTimePicker3|TextBox1|TextBox2|TextBox3".Split("|") For Each s As String In "Button6|Button7|DateTimePicker2|TextBox5".Split("|") For Each s As String In "Button8|Button9|DateTimePicker3|TextBox6".Split("|") For Each s As String In "Button10|Button11|DateTimePicker1|TextBox2".Split("|") |
-- 作者:逛逛 -- 发布时间:2014/4/25 8:28:00 -- 如果你的角色是做死的,后面不会变动的话,建议楼主换个一个思路
在设计时,控件命名就加上角色名,如Button1 的名称 :Button1_行销部经理
判断的话,遍历
e.Form.Controls(s).Enabled = s.Contains(User.Roles)
当然 User.Roles 为空要判断过 |
-- 作者:lsy -- 发布时间:2014/4/25 8:42:00 -- 权限控制,千变万化。 要做到既轻松,又严密,很难。 反正用代码,这么细致的控制,一是累人,二是缺少灵活性。
|
-- 作者:wealthwind -- 发布时间:2014/4/25 9:00:00 -- 很好,这段代码基本可以~~谢谢 |
-- 作者:wealthwind -- 发布时间:2014/4/25 13:14:00 -- 那我应该如何处理,才会显得轻松点?? |
-- 作者:有点甜 -- 发布时间:2014/4/25 15:22:00 -- 以下是引用wealthwind在2014-4-25 13:14:00的发言:
那我应该如何处理,才会显得轻松点??
初学,先把功能实现。等熟悉了再改造。 |