Foxtable(狐表)用户栏目专家坐堂 → 权限表控制


  共有2584人关注过本帖树形打印复制链接

主题:权限表控制

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110798 积分:563928 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/5 15:29: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.Group & "' and 姓名 = '" & 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

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110798 积分:563928 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/5 16:48:00 [显示全部帖子]

这样1楼代码没有问题,前提是必须保证姓名和列名不为空的行必须是勾选“可编辑”的。

建议还是按照帮助的用法:先把所有表都显示,然后控制那些表和列不显示。

如果反过来先把所有表都不显示,然后控制那些表和列显示,这样的控制很麻烦。

把项目中所有的表名及相应表中的全部列 显示出来 参考:

 回到顶部