以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 可视化授权代码 无法执行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=113025)

--  作者:kinglw110
--  发布时间:2018/1/7 13:19:00
--  [求助] 可视化授权代码 无法执行

图片点击可在新窗口打开查看此主题相关图片如下:1-7.png
图片点击可在新窗口打开查看


代码写好后 没有提示错误,但表的可见也编辑选项无法实现,代码也看了好几遍了,没有发现哪里有问题

Dim dr As DataRow
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User ) \'普通用记登录则隐藏

If User.Type = UserTypeEnum.User Then  \'如果是普通用户登录,根据不同的用户来设定权限
    For Each dr In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" )
        If dr IsNot Nothing  Then \'未找到相应的名字
            For Each t As Table In Tables
                t.AllowEdit =False
            Next
        Else
            
            
            If dr.IsNull("列名") Then
                Tables(dr("表名")).Visible =  not dr("不可见")
                Tables(dr("表名")).AllowEdit = dr("可编辑")
            Else
                Tables(dr("表名")).Cols(dr("列名")).Visible =  not dr("不可见")
                Tables(dr("表名")).Cols(dr("列名")).AllowEdit =dr("可编辑")
            End If
        End If
    Next
 Else   \'\'\'\'  不是普通用户 则允许编辑
        For Each t As Table In Tables
            t.AllowEdit =True
        Next

End If
[此贴子已经被作者于2018/1/7 13:19:40编辑过]

--  作者:有点甜
--  发布时间:2018/1/7 14:03:00
--  

1、加入msgbox,弹出值 msgbox(user.name)

 

2、如果自己做的登陆窗口,你要把代码写到自己的登陆按钮里去。user.name改成_UserName

[此贴子已经被作者于2018/1/7 14:03:06编辑过]

--  作者:kinglw110
--  发布时间:2018/1/7 14:44:00
--  
用户名应该是没错的,选用户管理  只显示登录的用户名的。狐表的菜单 显示的所示切换用户后可以查看, 登陆窗口只是改了下图片,按键没有更换
授权表中的可见与可编辑列是否选中在代码中无法体现出来

--  作者:有点甜
--  发布时间:2018/1/7 16:45:00
--  

加入代码,看弹出什么

 

msgbox(user.Type)
msgbox(user.name)


--  作者:有点甜
--  发布时间:2018/1/7 16:46:00
--  
如果自己不会调试,上传实例具体说明。
--  作者:kinglw110
--  发布时间:2018/1/8 14:40:00
--  
msgbox(user.Type)
msgbox(user.name)

在LoadUserSetting  原代码中加入后切换用户  无反应  

Dim dr As DataRow

Tables("授权表").Visible = (User.Type <> UserTypeEnum.User ) \'普通用记登录则隐藏


If User.Type = UserTypeEnum.User Then  \'如果是普通用户登录,根据不同的用户来设定权限

    For Each dr In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" )

        If dr IsNot Nothing  Then \'未找到相应的名字

            For Each t As Table In Tables

                t.AllowEdit =False

            Next

        Else

            msgbox(user.Type)

            msgbox(user.name)


--  作者:kinglw110
--  发布时间:2018/1/8 14:41:00
--  
后来我在命令窗口中执行,得到的结果是: “ 2 ”  “沈良林”
--  作者:kinglw110
--  发布时间:2018/1/8 14:43:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:1-8.png
图片点击可在新窗口打开查看
今天打开软件跳出这个窗口 表示试用要结束了吗?

--  作者:有点甜
--  发布时间:2018/1/8 14:47:00
--  

试试改成这样

 

Dim dr As DataRow
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 In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" )
        If dr.IsNull("列名") Then
            Tables(dr("表名")).Visible =  not dr("不可见")
            Tables(dr("表名")).AllowEdit = dr("可编辑")
        Else
            Tables(dr("表名")).Cols(dr("列名")).Visible =  not dr("不可见")
            Tables(dr("表名")).Cols(dr("列名")).AllowEdit =dr("可编辑")
        End If
    Next
End If


--  作者:kinglw110
--  发布时间:2018/1/8 15:38:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:权限限制.rar


图片点击可在新窗口打开查看此主题相关图片如下:1-8-1.png
图片点击可在新窗口打开查看

作了一个简单的 测试也不成功,我把项目上传请帮忙测试下
[此贴子已经被作者于2018/1/8 15:39:32编辑过]