Foxtable(狐表)用户栏目专家坐堂 → 请教窗口控件权限设置


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

主题:请教窗口控件权限设置

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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
请教窗口控件权限设置  发帖心情 Post By:2014/11/28 16:24:00 [只看该作者]

如图

图片点击可在新窗口打开查看此主题相关图片如下:9.gif
图片点击可在新窗口打开查看
请问这样的授权,代码如何写

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/28 16:28:00 [只看该作者]

 在afterLoad事件,比如

 

Dim dt As DataTable = DataTables("授权表")
For Each dr As DataRow In dt.Select("窗口 = '窗口1'")
    Forms("窗口1").Controls(dr("控件名")).Enabled = not dr("不可编辑")
    Forms("窗口1").Controls(dr("控件名")).Visible = not dr("不可见")
Next


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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
  发帖心情 Post By:2014/11/28 16:31: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.Name & "'" )
        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
 
I

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/28 16:33:00 [只看该作者]

 不能,只有在窗口的afterload事件写代码才行。红色代码你可以替换成变量

 

Dim dt As DataTable = DataTables("授权表")
For Each dr As DataRow In dt.Select("窗口 = '窗口1'")
    Forms("窗口1").Controls(dr("控件名")).Enabled = not dr("不可编辑")
    Forms("窗口1").Controls(dr("控件名")).Visible = not dr("不可见")
Next


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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
  发帖心情 Post By:2014/11/28 16:56:00 [只看该作者]

谢谢老师指导

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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
  发帖心情 Post By:2014/11/28 16:59:00 [只看该作者]

貌似 用户名 不起作用?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/28 17:00:00 [只看该作者]

For Each dr As DataRow In dt.Select("窗口 = '窗口1' and 用户名 = '" & user.Name & "'")

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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
  发帖心情 Post By:2014/11/28 17:04:00 [只看该作者]

谢谢

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


加好友 发短信
等级:幼狐 帖子:123 积分:921 威望:0 精华:0 注册:2013/8/12 23:47:00
  发帖心情 Post By:2014/11/28 17:27:00 [只看该作者]

追加问题,想在 授权表 加入列内容隐藏设定,增加列 “掩码” 如何修改代码

图片点击可在新窗口打开查看此主题相关图片如下:11.gif
图片点击可在新窗口打开查看


If e.Col.Name = "列名" Then '请改为实际列名
    If User.name <> "张经理" AndAlso UserName <> "王总监" Then '如果不是指定用户
        e.Text = 
"****" '则修改显示内容
    
End If
End
 
If
[此贴子已经被作者于2014-11-28 17:29:21编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/28 17:32:00 [只看该作者]

1、不要再drawcell事件写find函数;

 

2、在afteropenproject的时候,把对应表,对应列的掩码取出保存在一个集合变量里;

 

3、在drawcell里面取出变量值,设置


 回到顶部