Foxtable(狐表)用户栏目专家坐堂 → 请教可视化授权的转换


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

主题:请教可视化授权的转换

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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
请教可视化授权的转换  发帖心情 Post By:2017/3/15 10:47: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


现想转换成可见或可编辑的授权,应该怎么改,我直接把上述的代码改成下面的方式,但没法正常授权,不知道是不是逻辑判断的问题:


For Each t As Table In Tables
    t.Visible = FALSE

    t.AllowEdit = FALSE

    For
Each c As Col In t.Cols
        c.Visible = FALSE

        c.AllowEdit = FALSE

    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 = dr("可见")
            Tables
(dr("表名")).AllowEdit = dr("可编辑")

        Else
           
Tables(dr("表名")).Cols(dr("列名")).Visible = dr("可见")
            Tables
(dr("表名")).Cols(dr("列名")).AllowEdit = dr("可编辑")
        End
If
    Next
End
If


麻烦帮一下忙,谢谢!


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/15 10:56: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 = dr("可见")
            Tables(dr("表名")).AllowEdit = dr("可编辑")
        Else
            Tables(dr("表名")).Cols(dr("列名")).Visible = dr("可见")
            Tables(dr("表名")).Cols(dr("列名")).AllowEdit = dr("可编辑")
            If dr("可见") Then
                Tables(dr("表名")).Visible = True
            End If
            If dr("可编辑") Then
                Tables(dr("表名")).Cols(dr("列名")).Visible = True              
            end if

        End If
    Next
End If


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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
  发帖心情 Post By:2017/3/15 13:33:00 [只看该作者]

OK,谢谢!

[此贴子已经被作者于2017/3/15 13:39:12编辑过]

 回到顶部