以文本方式查看主题

-  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=159877)

--  作者:nxqtxwz
--  发布时间:2021/1/12 9:57:00
--  提示信息

请教师帮忙看一下,为什么不行呢。显示MessageBox.Show("此列只有义教专干可以操作,如果必须进行编辑请与管理员联系授权!")
关不了。

 

Select Case e.Col.name
    Case "学生姓名","学籍号","班级"
        If User.Roles <> "义教专干" AndAlso User.Name <> "开发者" Then
            MessageBox.Show("此列只有义教专干可以操作,如果必须进行编辑请与管理员联系授权!")
           
            e.cancel = True
           
        End If
    Case "是否住宿","宿舍号"
        If User.Roles <> "总务主任" AndAlso User.Name <> "开发者" Then
            e.cancel = True
            MessageBox.Show("角色是总务主任才有权操作此列,如果必须进行编辑请与管理员联系授权!")
           
        End If
End Select


--  作者:有点蓝
--  发布时间:2021/1/12 9:59:00
--  
角色判断使用User.IsRole:http://www.foxtable.com/webhelp/topics/0609.htm
--  作者:nxqtxwz
--  发布时间:2021/1/12 10:19:00
--  

下面的代码只能判断是“义教专干”,怎么判断不是“义教专干”呢?

User.IsRole("义教专干") 

 

可不可以这么写呢

  If User.IsRole("义教专干")  AndAlso User.Name = "开发者" Then
            MessageBox.Show("此列只有义教专干可以操作,如果必须进行编辑请与管理员联系授权!")
            e.cancel = fales

 

。。。


--  作者:有点蓝
--  发布时间:2021/1/12 10:21:00
--  
If User.IsRole("义教专干")=false  AndAlso 
--  作者:nxqtxwz
--  发布时间:2021/1/12 11:30:00
--  

改成下面的形式为什么还是不行呢

点了"学生姓名","学籍号","班级"这些列,提示窗口就关不了了。

 

Select Case e.Col.name
    Case "学生姓名","学籍号","班级"
       If User.IsRole("义教专干")=false  AndAlso  User.Name <> "开发者" Then
            MessageBox.Show("此列只有义教专干可以操作,如果必须进行编辑请与管理员联系授权!")
           
            e.cancel = True
            
  End Select

[此贴子已经被作者于2021/1/12 11:30:31编辑过]

--  作者:有点蓝
--  发布时间:2021/1/12 11:41:00
--  

repareEdit

准备编辑单元格的时候执行。

e参数属性:

Table:       准备编辑的表
Row:         准备编辑的行
Col:         准备编辑的列
IsFocusCell: 逻辑型,是否是焦点单元格    
Cancel:      逻辑型,默认为False,设为True取消编辑。
Continue:     逻辑型,默认为True,设置为False取消后续操作 ,后续单元格不会再触发PrepareEdit事件。


重要提示:千万不要在PrepareEdit事件显示Messagebox这样的对话框,因为每次进入单元格就会出现提示,这样会导致死循环的出现。