Foxtable(狐表)用户栏目专家坐堂 → [求助]提示datatable不存在


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

主题:[求助]提示datatable不存在

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


加好友 发短信
等级:六尾狐 帖子:1310 积分:10133 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]提示datatable不存在  发帖心情 Post By:2021/8/7 11:57:00 [只看该作者]

Select Case e.Node.Name
    Case e.Node.Name
        Dim dr As DataRow
        dr = DataTables("报表权限").Find("报表 = '" & e.Node.Name & "'")
        If dr IsNot Nothing Then
            Dim fl As String = dr("分组")
            Dim ck As String = dr("查看权限")
            If Functions.Execute("ShouQuan",fl,ck) Then
                If Tables.Contains(e.Node.Name) Then
                    MainTable = Tables(e.Node.Name)
                ElseIf Forms.Contains(e.Node.Name) Then
                    MainTable = Tables("查询表")
                    Forms(e.Node.Name).Open()
                End If
            End If
        Else
            MessageBox.Show("你无此表查阅权限!")
        End If
End Select

符合标色部分条件,但总提示

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20210807115518.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/7 12:02:00 [只看该作者]

看看是不是窗口绑定了这个表,但是没有加载

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


加好友 发短信
等级:六尾狐 帖子:1310 积分:10133 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2021/8/7 12:43:00 [只看该作者]


此主题相关图片如下:微信图片_20210807123903.png
按此在新窗口浏览图片
这个目录树下的节点除了这个“账务审核”属于窗口外,其他都是table
但是我把这个目录树下的“账务审核”节点移到其他都是下面这个类型的目录树里,是没问题的
            If Functions.Execute("ShouQuan",fl,ck) Then
                    MainTable = Tables("查询表")
                    Forms(e.Node.Name).Open()
                End If

[此贴子已经被作者于2021/8/7 12:45:37编辑过]

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/7 13:21:00 [只看该作者]

请上传实例测试

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


加好友 发短信
等级:六尾狐 帖子:1310 积分:10133 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2021/8/7 14:31:00 [只看该作者]

哦,查出原因了,在这代码之前还有另外一段代码的影响,需要在这代码中加个判断Tables.Contains(e.Node.Name) 就没问题了
Select Case e.Node.Name
    Case e.Node.Name
        Dim dr1 As DataRow
        Dim dr2 As DataRow
        Dim dr3 As DataRow
        For Each nm As String In User.Roles.Split(",")
            dr1 = DataTables("授权表三").Find("表名 = '" & e.Node.Name & "' and 非受限角色 like '%" & nm & "%'")
            dr2 = DataTables("授权表三").Find("表名 = '" & e.Node.Name & "' and 受限角色 like '%" & nm & "%' and 列内容 is not null")
            dr3 = DataTables("授权表三").Find("表名 = '" & e.Node.Name & "' and 用户名列 = 1")
            If dr1 IsNot Nothing And Tables.Contains(e.Node.Name) Then
                DataTables(e.Node.Name).LoadFilter = ""
            ElseIf dr1 Is Nothing And dr2 IsNot Nothing And Tables.Contains(e.Node.Name) Then
                DataTables(e.Node.Name).LoadFilter = dr2("列名") & " In ( '" & dr2("列内容").replace(",","','") & "')"
            ElseIf dr1 Is Nothing And dr2 Is Nothing And dr3 IsNot Nothing And Tables.Contains(e.Node.Name) Then
                DataTables(e.Node.Name).LoadFilter = dr3("列名") & " = '" & User.Name & "'"
            End If
        Next
        If Tables.Contains(e.Node.Name) Then
            DataTables(e.Node.Name).Load
        End If
End Select

[此贴子已经被作者于2021/8/7 14:32:31编辑过]

 回到顶部