Foxtable(狐表)用户栏目专家坐堂 → [求助]自定义函数故障求解


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

主题:[求助]自定义函数故障求解

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


加好友 发短信
等级:童狐 帖子:294 积分:4701 威望:0 精华:0 注册:2011/5/28 8:21:00
[求助]自定义函数故障求解  发帖心情 Post By:2012/10/15 16:28:00 [只看该作者]

自定义功能权限函数,代码如下,用Functions.execute("功能权限","人力资源","职工信息","","") 调用时显示超出数组界限,不知原因何在,求高手指点
"

Dim str0 As String = args(0)
Dim str1 As String = args(1)
Dim str2 As String = args(2)
Dim str3 As String = args(3)
Dim str4 As String
Dim strs As New List(of String)
Dim dt As DataTable
Dim dr As DataRow
Dim cmd As new sqlcommand
cmd.ConnectionName = _DBSource1
If _UserID = "000" Then
    Return True
    Exit Function
End If
cmd.CommandText = "SELECT * From {系统_功能权限} where 功能权限分组 = '管理员'"
dt = cmd.ExecuteReader()
If dt.DataRows.count <> 0 Then
    For Each dr In dt.DataRows
        If dr.IsNull("功能权限用户") = False Then
            strs.AddRange(dr("功能权限用户").Split(","))
            If Strs.Contains(_UserID) = True Then
                Return True
                Exit Function
            End If
        End If
    Next
Else
    messagebox.show("未找到 [管理员] 功能权限分组或权限,请检查","提示")
    Return False
    Exit Function
End If
If str1 Is Nothing Then
    str4 = "功能权限分组 = '" & str0 & "' And 功能权限子组 is null And 功能权限名称 is null And 功能权限细分 is null"
ElseIf str2 Is Nothing Then
    str4 = "功能权限分组 = '" & str0 & "' And 功能权限子组 = '" & str1 & "' And 功能权限名称 is null And 功能权限细分 is null"
ElseIf str3 Is Nothing Then
    str4 = "功能权限分组 = '" & str0 & "' And 功能权限子组 = '" & str1 & "' And 功能权限名称 = '" & str2 & "' And 功能权限细分 Is null"
Else
    str4 = "功能权限分组 = '" & str0 & "' And 功能权限子组 = '" & str1 & "' And 功能权限名称 = '" & str2 & "' And 功能权限细分 = '" & str3 & "'"
End If
cmd.CommandText = "SELECT * From {系统_功能权限} where " & str4 & " "
dt = cmd.ExecuteReader()
If dt.DataRows.count = 1 Then
    dr = dt.DataRows(0)
    If dr.IsNull("功能权限用户") = False Then
        strs.AddRange(dr("功能权限用户").Split(","))
        If Strs.Contains(_UserID) = True Then
            Return True
        Else
            Return False
        End If
    Else
        Return False
    End If
Else
    messagebox.show("未找到[" & str0 & "] - [" & str1 & "] - [" & str2 & "] - [" & str3 & "] 功能权限设置,请检查","提示")
    Return False
End If


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


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

做个例子发上来说话,否则别人很难帮你。

另外请先自己找出错误代码位置:

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

 


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/15 17:03:00 [只看该作者]

 strs.AddRange(dr("功能权限用户").Split(","))

或者这句

 cmd.CommandText = "SELECT * From {系统_功能权限} where " & str4 & " "

------------------------------------------

楼主在代码里插入 msgbox 确定出错位置

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

 回到顶部