以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  报错,不存在名为“”的Table  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=70084)

--  作者:guning007
--  发布时间:2015/6/15 17:18:00
--  报错,不存在名为“”的Table
我在项目事件AfterOpenProject中加入如下可视化授权代码

Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("用户分组 = \'" & User.Group & "\'" )
        If dr.IsNull("列名") Then
            Tables(dr("表名")).Visible = Not dr("不可见")
            Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
        Else
            Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑") 
        End If
    Next
End If

然后有件奇怪的事情发生,我用开发者和管理员登录时,没有问题,但是如果用任何一个其他用户登录,就会报两个错误。

1, 不存在名为“”的Table

2, 未将对象引用设置到对象的实例

想问问是因为这段代码的问题吗?

谢谢!

--  作者:Bin
--  发布时间:2015/6/15 17:20:00
--  
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("用户分组 = \'" & User.Group & "\'" )
        If dr.IsNull("列名") Then
            Tables(dr("表名")).Visible = Not dr("不可见")
            Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
        Else if  dr.isnull("表名")=false then
            Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑") 
        End If
    Next
End If

--  作者:大红袍
--  发布时间:2015/6/15 17:20:00
--  

 

For Each dr As DataRow In DataTables("授权表").Select("用户分组 = \'" & User.Group & "\' and 表名 is not null" )

 

 


--  作者:guning007
--  发布时间:2015/6/15 23:13:00
--  
多谢二位的耐心指点,我把两位给出的建议都加上去了,现在好了。