以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]急!求高手指点代码修改!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=39180)

--  作者:physics
--  发布时间:2013/8/17 16:46:00
--  [求助]急!求高手指点代码修改!

让不同用户编辑不同的列

1、禁止张三和李四编辑第一列、第二列和第三列。
2、禁止王五和赵六编辑第四列、第五列和第六列。

Select Case User.Name
    Case "张三","李四"
        Select Case e.Col.Name
            Case "第一列","第二列","第三列" 
                e.Cancel = True
        End Select
    Case "王五""赵六"
        Select Case e.Col.Name
            Case "第四列","第五列","第六列" 
                e.Cancel = True
        End Select
End Select

<!--EndFragment-->

 

现在需要实现如下功能:

1、只允许 张三和李四编辑第一列、第二列和第三列。
2、只允许 王五和赵六编辑第四列、第五列和第六列。

 

该如何实现呢?

 

谢谢!!!

 

我改了下 ,似乎如下代码可以 。

现在需要实现如下功能:

1、只允许 张三和李四编辑第一列、第二列和第三列。
2、只允许 王五和赵六编辑第四列、第五列和第六列。

Select Case User.Name
    Case <> "张三","李四"
        Select Case e.Col.Name
            Case "第一列","第二列","第三列" 
                e.Cancel = True
        End Select
    Case <> "王五""赵六"
        Select Case e.Col.Name
            Case "第四列","第五列","第六列" 
                e.Cancel = True
        End Select
End Select

<!--EndFragment--><!--EndFragment-->

[此贴子已经被作者于2013-8-17 17:06:03编辑过]

--  作者:Bin
--  发布时间:2013/8/17 16:49:00
--  
参考一下帮助的可视化授权做吧 http://www.foxtable.com/help/topics/1600.htm
--  作者:czy
--  发布时间:2013/8/17 16:55:00
--  

如果就这样的要求,调换下列名称位置就行了

 

Select Case User.Name
    Case "张三","李四"
        Select Case e.Col.Name
            Case "第四列","第五列","第六列" 
                e.Cancel = True
        End Select
    Case "王五""赵六"
        Select Case e.Col.Name
            Case "第一列","第二列","第三列" 

                e.Cancel = True
        End Select
End Select


--  作者:physics
--  发布时间:2013/8/17 16:56:00
--  
不行的 。 条件是 只允许 。如还有 其它用户 ,他们还没限制的编辑的呢。。
--  作者:physics
--  发布时间:2013/8/17 16:58:00
--  

因为有很多表格 ,很多用户 ,要针对不同用户 进行不同的 授权 ,限制 等等。。。。


--  作者:Bin
--  发布时间:2013/8/17 16:58:00
--  
那就参考一下帮助里的可视化授权.请看2楼!
--  作者:physics
--  发布时间:2013/8/17 17:03:00
--  

Select Case User.Name
    Case <> "张三","李四"
        Select Case e.Col.Name
            Case "第一列","第二列","第三列" 
                e.Cancel = True
        End Select
    Case <> "王五""赵六"
        Select Case e.Col.Name
            Case "第四列","第五列","第六列" 
                e.Cancel = True
        End Select
End Select


--  作者:czy
--  发布时间:2013/8/17 17:04:00
--  
以下是引用physics在2013-8-17 16:56:00的发言:
不行的 。 条件是 只允许 。如还有 其它用户 ,他们还没限制的编辑的呢。。

 

那个换个方式

 

e.Cancel = True
Select Case User.Name
    Case "张三","李四"
        Select Case e.Col.Name
            Case "第一列","第二列","第三列"
                e.Cancel = False
        End Select
    Case "王五", "赵六"
        Select Case e.Col.Name
            Case "第四列","第五列","第六列"
                e.Cancel = False
        End Select
End Select


--  作者:physics
--  发布时间:2013/8/17 17:05:00
--  

Select Case User.Name
    Case <> "张三","李四"
        Select Case e.Col.Name
            Case "第一列","第二列","第三列" 
                e.Cancel = True
        End Select
    Case <> "王五""赵六"
        Select Case e.Col.Name
            Case "第四列","第五列","第六列" 
                e.Cancel = True
        End Select
End Select

 

这样代码 没有错误的吧??


--  作者:czy
--  发布时间:2013/8/17 17:08:00
--  

如果还有用户无需限制的可以这样

 

If User.Name = "开发者"
    Return
End If
e.Cancel = True
Select Case User.Name
    Case "张三","李四"
        Select Case e.Col.Name
            Case "第一列","第二列","第三列"
                e.Cancel = False
        End Select
    Case "王五", "赵六"
        Select Case e.Col.Name
            Case "第四列","第五列","第六列"
                e.Cancel = False
        End Select
End Select