以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教如何实现多列权限、多用户权限编辑?在线等,多谢。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91124)

--  作者:ksaa16888
--  发布时间:2016/9/29 22:21:00
--  请教如何实现多列权限、多用户权限编辑?在线等,多谢。
一张表中想实现,字段很多,示例如下:
登录用户为叶籽籽时,可以编辑指定的多列,但是其中几列登记完后不允许本人再次编辑,除非经理才可以编辑。
If e.Col.Name = "第一列" Or e.Col.Name = "第二列" or e.Col.Name = "第三列" Then
If User.Name <> "叶籽籽" Then 
e.cancel=True   
If e.Row.IsNull("第一列","第二列") = False Then 
        If User.Name <> "张经理" Then 
            e.Cancel = True 
        End If
    End If
End If
End If
用上述代码实现不了。

--  作者:有点蓝
--  发布时间:2016/9/29 22:28:00
--  
Select Case e.Col.Name
    Case "第一列","第二列","第三列"
        If e.Row.IsNull(e.Col.Name)  Then
            If User.Name <> "叶籽籽" Then e.Cancel = True
        Else
            If User.Name <> "张经理" Then e.Cancel = True
        End If
        
End Select

--  作者:ksaa16888
--  发布时间:2016/9/29 22:44:00
--  
先感谢。
我试了下,这样子,叶籽籽把第一列、第二列、第三列都编辑完后,均不可以再编辑,
我是想第一列和第二列不允许再次编辑,第三列还是可以的。

--  作者:有点蓝
--  发布时间:2016/9/29 22:52:00
--  
那就去掉第三列咯

Select Case e.Col.Name
    Case "第一列","第二列"
        If e.Row.IsNull(e.Col.Name)  Then
            If User.Name <> "叶籽籽" Then e.Cancel = True
        Else
            If User.Name <> "张经理" Then e.Cancel = True
        End If
        
End Select

--  作者:ksaa16888
--  发布时间:2016/9/29 22:54:00
--  
叶籽籽把第一列、第二列编辑完后这两列不允许再编辑,只有张经理才可以编辑,但第三列可以仍由叶籽籽编辑,该如何实现?多谢。
--  作者:有点蓝
--  发布时间:2016/9/29 22:54:00
--  
看4楼
--  作者:ksaa16888
--  发布时间:2016/9/29 22:57:00
--  
但是第三列只能由叶籽籽编辑,其他人不能,还是需要设置权限?
--  作者:ksaa16888
--  发布时间:2016/9/29 23:00:00
--  
相当于第1、2、3列只能由叶籽籽编辑,但是第1、2列的数据一旦录入,只有经理才能编辑,第3列允许继续由叶籽籽编辑。
--  作者:有点蓝
--  发布时间:2016/9/29 23:05:00
--  
Select Case e.Col.Name
    Case "第一列","第二列"
        If e.Row.IsNull(e.Col.Name)  Then
            If User.Name <> "叶籽籽" Then e.Cancel = True
        Else
            If User.Name <> "张经理" Then e.Cancel = True
        End If
    Case "第三列"
If User.Name <> "叶籽籽" Then e.Cancel = True
End Select

--  作者:ksaa16888
--  发布时间:2016/9/29 23:15:00
--  
刚刚也想到用这个编,但怎么老报错end if要与IF匹配,不是每个IF都要对应一个end if的吗?
Select Case e.Col.Name
    Case "第一列","第二列"
        If e.Row.IsNull(e.Col.Name)  Then
            If User.Name <> "叶籽籽" Then e.Cancel = True
        Else
            If User.Name <> "张经理" Then e.Cancel = True
            End If
            End If
   Case "第三列","第四列","第五列"
        If user.name <> "叶籽籽" Then e.cancel = True
        End If
End Select