Foxtable(狐表)用户栏目专家坐堂 → 我做了一个授权的代码,可是老是出现如下图所示的错误


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

主题:我做了一个授权的代码,可是老是出现如下图所示的错误

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


加好友 发短信
等级:二尾狐 帖子:529 积分:3605 威望:0 精华:0 注册:2011/10/11 17:20:00
我做了一个授权的代码,可是老是出现如下图所示的错误  发帖心情 Post By:2012/8/27 17:02:00 [只看该作者]

我做了一个授权的目录树,目录树的NodeMouseDoubleClick时间的代码如下:

If e.Node.Level =0 Then '如果是多层节点
    Return '则返回
End If
Select Case e.Node.Text
    Case "物料类别"
        If Functions.Execute("ShouQuan","A-物料类别")   Then
            Forms("物料类别_浏览").Open()
            MainTable = Tables("物料类别")
            Tables("物料类别").Visible =True
        Else
            Messagebox.Show("对不起,你没有操作权限")
        End If
    Case "物料管理"
        If Functions.Execute("ShouQuan","B-物料管理")   Then
            Forms("物料管理_浏览").Open()
            MainTable = Tables("物料管理")
            Tables("物料管理").Visible =True
        Else
            Messagebox.Show("对不起,你没有操作权限")
        End If
    Case "仓库管理"
        If Functions.Execute("ShouQuan","C-仓库管理")   Then
            Forms("仓库管理_浏览").Open()
            MainTable = Tables("仓库管理")
            Tables("仓库管理").Visible =True
        Else
            Messagebox.Show("对不起,你没有操作权限")
        End If
    Case "入库单"
        If Functions.Execute("ShouQuan","A-入库单")   Then
            Forms("入库单_浏览").Open()
            MainTable = Tables("入库单")
            Tables("入库单").Visible =True
        Else
            Messagebox.Show("对不起,你没有操作权限")
        End If
    Case "材料出库单"
        If Functions.Execute("ShouQuan","B-材料出库单")   Then
            Forms("材料出库单_浏览").Open()
            MainTable = Tables("材料出库单")
            Tables("材料出库单").Visible =True
        Else
            Messagebox.Show("对不起,你没有操作权限")
        End If
    Case "领料单"
        If Functions.Execute("ShouQuan","C-领料单")   Then
            Forms("领料单_浏览").Open()
            MainTable = Tables("领料单")
            Tables("领料单").Visible =True
        Else
            Messagebox.Show("对不起,你没有操作权限")
        End If
    Case "销售出库单"
        If Functions.Execute("ShouQuan","D-销售出库单")   Then
            Forms("销售出库单_浏览").Open()
            MainTable = Tables("销售出库单")
            Tables("销售出库单").Visible =True
        Else
            Messagebox.Show("对不起,你没有操作权限")
        End If
    Case "委外加工单"
        If Functions.Execute("ShouQuan","E-委外加工单")   Then
            Forms("委外加工单_浏览").Open()
            MainTable = Tables("委外加工单")
            Tables("委外加工单").Visible =True
        Else
            Messagebox.Show("对不起,你没有操作权限")
        End If
    Case "退货换货单"
        If Functions.Execute("ShouQuan","F-退货单")   Then
            Forms("退货单_浏览").Open()
            MainTable = Tables("退货单")
            Tables("退货单").Visible =True
        Else
            Messagebox.Show("对不起,你没有操作权限")
        End If
    Case "移库单"
        If Functions.Execute("ShouQuan","G-移库单")   Then
            Forms("移库单_浏览").Open()
            MainTable = Tables("移库单")
            Tables("移库单").Visible =True
        Else
            Messagebox.Show("对不起,你没有操作权限")
        End If
End Select

在测试的时候,点击目录树节点的时候,老是出现如下图所示的错误

 

 

请狐狸爸爸,帮我看一下,是哪里出了问题,谢谢


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120821084828.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/8/27 17:22:00 [只看该作者]

你的授权函数("shouquan")有问题,看看这个,找出出错代码:

http://www.foxtable.com/help/topics/1485.htm

 


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


加好友 发短信
等级:二尾狐 帖子:529 积分:3605 威望:0 精华:0 注册:2011/10/11 17:20:00
  发帖心情 Post By:2012/8/27 17:32:00 [只看该作者]

我的授权函数shouquan的代码如下:

If User.Type <> 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 '如果授权用户包括登录用户所属的分组或其用户名
            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 '如果授权用户包括登录用户所属的分组或其用户名
            Return True '返回True
        End If
    Next
End If
Return False

 

我找了半天也找不出问题啊,狐狸爸爸,能帮我到底是哪里出错了吗?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/8/27 17:36:00 [只看该作者]

用这个方法:

http://www.foxtable.com/help/topics/1485.htm

 

找出出错的代码,然后分析原因。


 回到顶部