Foxtable(狐表)用户栏目专家坐堂 → 可视化授权:同样代码,为何改为外部数据源就无效呢?


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

主题:可视化授权:同样代码,为何改为外部数据源就无效呢?

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
可视化授权:同样代码,为何改为外部数据源就无效呢?  发帖心情 Post By:2013/5/24 12:36: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

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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
  发帖心情 Post By:2013/5/24 13:20:00 [只看该作者]

你的外部数据源用不用分组(User.Group),并且设定为全局代码没有?

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2013/5/24 14:22:00 [只看该作者]

我设了全局代码,我用的外部数据源是分组(User.Group)的!


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/5/24 14:23:00 [只看该作者]

一步步调试 弹出需要判断的值 看看是否正常获得.

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2013/5/24 14:37:00 [只看该作者]

我没有设到全局代码,只是在项目属性的项目事件LoadUserSetting中,加入如下代码:

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

我用的外部数据源是分组(User.Group)的!


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/5/24 14:40:00 [只看该作者]

一步步调试 弹出需要判断的值 看看是否正常获得.
然后分析为什么没有获得这个值.
如果代码之前是可以的,说明代码没问题.反复发代码也没用.


如果确保都能正常获得值,再来分析代码是否有问题.


 回到顶部