Foxtable(狐表)用户栏目专家坐堂 → 自定义函数是否有问题?请指教


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

主题:自定义函数是否有问题?请指教

帅哥哟,离线,有人找我吗?
stone9434
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1656 威望:0 精华:0 注册:2013/3/19 16:05:00
自定义函数是否有问题?请指教  发帖心情 Post By:2016/1/22 15:33:00 [只看该作者]

目录树形式的授权,根据帮助做了一个自定义函数,但因为采用的是自定义用户窗口登录,就是说没有采用内置的用户,然后修改了 _UserType  _UserGroup _UserName ,然后执行   If Functions.Execute("ShouQuan","物料采购","审核") Then
Forms("物料采购合同审批单一览表").Open()
发现对所有用户都能打开,不知道是不是自定义函数的问题

 回到顶部
帅哥哟,离线,有人找我吗?
stone9434
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1656 威望:0 精华:0 注册:2013/3/19 16:05:00
  发帖心情 Post By:2016/1/22 15:34:00 [只看该作者]

就是说不管这个用户授权了权限或者没授权,都能打开窗口,不知道什么原因,授权的自定义的代码如下
If _UserType <> UserTypeEnum.User Then ' 如果是开发者或者管理员
    Return True '则具备所有权限
End If
Dim dt As DataTable = DataTables("授权")
Dim dr As DataRow
'首先判断分组的授权用户是否包括此用户或此用户所属的分组
dr = dt.Find("分组 = '" & args(0) & "' And 权限 Is Null" )
If dr Is Nothing Then
    MessageBox.show("不存在名为""" & args(0) & "分组!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return False
End If
If dr.IsNull("用户") = False Then
    Dim nms() As String = dr("用户").Split(",")
    For Each nm As String In nms
        If nm = _UserGroup OrElse nm = _UserName Then '如果授权用户包括登录用户所属的分组或其用户名
 'If nm = User.Group OrElse nm = User.Name Then '如果授权用户包括登录用户所属的分组或其用户名

            Return True '返回True
        End If
    Next
End If
'然后判断权限的授权用户是否包括此用户或此用户所属的分组
If Args(1) = "" Then
    Return False
End If
dr = dt.Find("分组 = '" & args(0) & "' And 权限 = '" & args(1) & "'")
If dr Is Nothing Then
    MessageBox.show("不存在名为""" & args(1) & "权限!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return False
End If
If dr.IsNull("用户") = False Then
    Dim nms() As String = dr("用户").Split(",")
    For Each nm As String In nms
        If nm = _UserGroup OrElse nm = _UserName Then '如果授权用户包括登录用户所属的分组或其用户名
'If nm = User.Group OrElse nm = User.Name Then '如果授权用户包括登录用户所属的分组或其用户名
            Return True '返回True
        End If
    Next
End If
Return False

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/22 15:34:00 [只看该作者]

贴出你写的函数。


 回到顶部
帅哥哟,离线,有人找我吗?
stone9434
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1656 威望:0 精华:0 注册:2013/3/19 16:05:00
  发帖心情 Post By:2016/1/22 15:34:00 [只看该作者]

实际上没有改动其他东西,就只改动了_UserType  _UserGroup _UserName 


 回到顶部
帅哥哟,离线,有人找我吗?
stone9434
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1656 威望:0 精华:0 注册:2013/3/19 16:05:00
  发帖心情 Post By:2016/1/22 15:35:00 [只看该作者]

请高手指教,问题出在哪里


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/22 15:35:00 [只看该作者]

这段去掉试试

 

If _UserType <> UserTypeEnum.User Then ' 如果是开发者或者管理员
    Return True '则具备所有权限
End If


 回到顶部
帅哥哟,离线,有人找我吗?
stone9434
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1656 威望:0 精华:0 注册:2013/3/19 16:05:00
  发帖心情 Post By:2016/1/22 15:36:00 [只看该作者]

好,我试试看

 回到顶部
帅哥哟,离线,有人找我吗?
stone9434
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1656 威望:0 精华:0 注册:2013/3/19 16:05:00
  发帖心情 Post By:2016/1/22 15:39:00 [只看该作者]

去掉那段代码后,所有用户点击都会显示“不存在物料采购分组!,然后显示我设定的弹窗”无审核权限“


 回到顶部
帅哥哟,离线,有人找我吗?
stone9434
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1656 威望:0 精华:0 注册:2013/3/19 16:05:00
  发帖心情 Post By:2016/1/22 15:39:00 [只看该作者]

已经授权审核的人也不能打开


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/22 15:41:00 [只看该作者]

 说明你表数据有问题啊,授权表必须 "物料采购","审核" 的数据啊

 回到顶部
总数 16 1 2 下一页