以文本方式查看主题

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

--  作者:实话实说
--  发布时间:2009/11/29 22:58:00
--  权限设置
这是帮助中的代码: 

For Each t As Table In Tables
    t.Visible =
True
    t.AllowEdit =
true
    For Each c As Col In t.Cols
        c.Visible =
True
        c.AllowEdit =
True
    Next

Next
Tables
("授权表").Visible = (User.Type <> UserTypeEnum.User )
If
User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" )
        If
dr.IsNull("列名")
Then
       
    Tables(dr("表名")).Visible = Not dr("不可见")
            Tables
(dr("表名")).AllowEdit = Not dr("不可编辑")

        Else
           
Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables
(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑")
        End
If
    Next
End
If

运行后原来隐藏的表和隐藏的列全都出来了。
我现在只要设置表的编辑权限,不要涉及表和列的可见性


--  作者:czy
--  发布时间:2009/11/30 0:09:00
--  

前面的全部不要。

Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
……


--  作者:实话实说
--  发布时间:2009/11/30 7:03:00
--  

我的[权限表]只有用户名、[表名]和[不可编辑]三列,没有[列名],如下代码行吗?

Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If
User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" )
        
Tables(dr("表名")).Visible = Not dr("不可见")
        Tables
(dr("表名")).AllowEdit = Not dr("不可编辑")

    
Next
End
If


--  作者:czy
--  发布时间:2009/11/30 11:03:00
--  
如果只有这三列,那么这行代码就得删除:Tables(dr("表名")).Visible = Not dr("不可见")
否则就得加上不可见列。

--  作者:实话实说
--  发布时间:2009/11/30 11:04:00
--  
顶一下
--  作者:czy
--  发布时间:2009/11/30 11:08:00
--  

顶什么?


--  作者:实话实说
--  发布时间:2009/11/30 12:07:00
--  

 顶的时候没看见4楼