以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于用户、用户级、用户角色  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149150)

--  作者:爱相随
--  发布时间:2020/4/24 15:21:00
--  关于用户、用户级、用户角色
  老师,下面代码我是把原来的用户组改为用户角色,然后提示错误:编译错误,未声名:UserIsRoleEnum,错误代码:Tables("sqb").Visible = (User.Type <> UserIsRoleEnum.User ),关于用户角色的使用,总是用不好,下面的代码该怎么改修呢?请老师指导,谢谢!!
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("sqb").Visible = (User.Type <> UserIsRoleEnum.User )
If User.Type = UserIsRoleEnum.User Then
    For Each dr As DataRow In DataTables("sqb").Select("用户角色 = \'" & User.IsRole & "\'" )
        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

[此贴子已经被作者于2020/4/24 15:21:40编辑过]

--  作者:有点蓝
--  发布时间:2020/4/24 15:33:00
--  
type是用户类型,不是角色。认真看看帮助:http://www.foxtable.com/webhelp/topics/0609.htm
Type
返回用户级别(类型),UserTypeEnum型枚举,包括以下可选值:

Developer: 开发者
Administrator:管理员
User:普通用户。

角色是Roles
Roles
返回用户的角色,一个用户可以有多个角色,用逗号分隔。

For Each dr As DataRow In DataTables("sqb").Select("用户角色 in (\'" & User.Roles.replace(",","\',\'") & "\')" )
--  作者:shenyl0211
--  发布时间:2020/4/24 22:44:00
--  
不要机械地看帮助、套例子,要根据自己单位的实际情况,这样才能对得起狐表强大的功能。否则不如买个现成的软件。
不同的【部门】就是不同的【用户组】,同一部门有不同的【岗位】分工,就是不同的【用户角色】。
【不可见】、【不可编辑】完全可以换成【查阅】、【编辑】,这样【列名】不是更简单吗?【列宽】不是更窄吗?屏幕宽度是有限的,要尽量避免或减少用户移动水平滚动条。