以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  权限控制没有作用?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=89071)

--  作者:douglas738888
--  发布时间:2016/8/15 12:42:00
--  权限控制没有作用?

请教老师下面代码没有权限作用, 窗口中的是关联表,任务阶段要求 的列属性是备注型

 

窗口全局事件  ENTER

Dim ctl As WinForm.Control = e.Sender  
Select Case ctl.BindingField
    Case "工程设计任务书.工程策划副表设计任务时间明细.任务阶段要求"
        If _UserGroup = "技术管理"  orelse  _UserGroup = "负责人" Then
            ctl.ReadOnly = BooleanEnum.False \'允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True \'禁止编辑
        End If
End Select

[此贴子已经被作者于2016/8/15 12:43:26编辑过]

--  作者:Hyphen
--  发布时间:2016/8/15 14:58:00
--  
msgbox( ctl.BindingField)
msgbox(_UserGroup)
看看都是什么值

--  作者:douglas738888
--  发布时间:2016/8/15 15:40:00
--  

老师,弹出的值 是   “员工”   但是不能控制编辑     _UserGroup  在设置button1 是有效果的

 

就是这里设置 列 的编辑权限不能控制。


--  作者:大红袍
--  发布时间:2016/8/15 15:44:00
--  

 msgbox(ctl.BindingField)  弹出什么? 能否控制某控件不能编辑?


--  作者:douglas738888
--  发布时间:2016/8/15 15:49:00
--  

我从登陆窗口已员工角色登陆,弹出窗一个是空白的   另一个是 显示员工     不能控制 关联表里面设定的权限列  依然能编辑

 

窗口全局事件  ENTER

Dim ctl As WinForm.Control = e.Sender  
Select Case ctl.BindingField
    Case "工程设计任务书.工程策划副表设计任务时间明细.任务阶段要求"
        If _UserGroup = "技术管理"  orelse  _UserGroup = "负责人" Then
            ctl.ReadOnly = BooleanEnum.False \'允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True \'禁止编辑
        End If
End Select


--  作者:大红袍
--  发布时间:2016/8/15 16:00:00
--  

1、弹出空白,说明你这个控件,并没有绑定 关联表 的某一列。

 

2、你是要控制表格的权限,还是要控制某个控件的权限?


--  作者:douglas738888
--  发布时间:2016/8/15 16:10:00
--  

老师,我想控制的是 例如:窗口1 中的表A   A列 只能符合“管理人员”角色的人编辑该列  ,如果角色  不是”管理人员“的只能阅览该列    A列是备注型

 

表A 是关联子表

[此贴子已经被作者于2016/8/15 16:10:44编辑过]

--  作者:大红袍
--  发布时间:2016/8/15 16:38:00
--  

去 工程策划副表设计任务时间明细 表的表事件 prepareEdit 写代码

 

If e.Table.Name = "工程设计任务书.工程策划副表设计任务时间明细" AndAlso e.Col.Name = "任务阶段要求" Then
    If _UserGroup = "技术管理"  OrElse  _UserGroup = "负责人" Then
        e.Cancel = False
    Else
        e.Cancel = True
    End If
End If


--  作者:douglas738888
--  发布时间:2016/8/15 17:03:00
--  
大红袍老师,这样的话,备注型|... 就不能查看内容了,如果禁止编辑,但可点击查看备注,是否能实现
--  作者:大红袍
--  发布时间:2016/8/15 17:35:00
--  

1、8楼代码,写到startEdit事件

 

2、DataColChanging事件,还要写

 

If e.DataCol.Name = "任务阶段要求" Then
    If _UserGroup = "技术管理"  OrElse  _UserGroup = "负责人" Then
        e.Cancel = False
    Else
        e.Cancel = True
    End If
End If