Foxtable(狐表)用户栏目专家坐堂 → [新手求教]说明书这段如何在找不到表和列时不报错啊?


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

主题:[新手求教]说明书这段如何在找不到表和列时不报错啊?

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


加好友 发短信
等级:幼狐 帖子:101 积分:1002 威望:0 精华:0 注册:2016/6/27 0:11:00
[新手求教]说明书这段如何在找不到表和列时不报错啊?  发帖心情 Post By:2017/3/21 9:41:00 [只看该作者]

可视化授权的实现



For Each t As Table In Tables
    t.Visible =
True
    t.AllowEdit =
true

    For
Each c As Col In t.Cols
        c.Visible =
True
        c.AllowEdit =
True
    Next

Next
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




这段代码, 要是在某个用户的客户端没有载入某表某列, 然后授权表中又说到那表那列时, 就会报错。

如何简单修改下让其跳过找不到的表和列啊,然后其它行照样生效啊?


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/21 11:22:00 [只看该作者]

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

 


 回到顶部