以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 录入窗口的权限设置  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=69082)

--  作者:hch
--  发布时间:2015/5/29 20:33:00
--  [求助] 录入窗口的权限设置
    我根据帮助文件录入窗口与权限管理中的提示,想实现根据不同用户组对窗口的录入编辑有不同权限(即管理用户可以在窗体编辑录入数据,普通用户没有编辑权限),把帮助文件这段代码:

Dim ctl As WinForm.Control = e.Sender
Select
Case ctl.BindingField
    Case
"
A.第一列", "A.第二列", "A.第三列"
        If User.Name =
"
张三" Then
            ctl.ReadOnly = BooleanEnum.False
\'
允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True
\'
禁止编辑
        End If
    Case
"
A.第四列", "A.第五列", "A.第六列"
        If User.Name =
"
李四" Then
            ctl.ReadOnly = BooleanEnum.False
\'
允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True
\'
禁止编辑
        End
If

End
Select

改写为:

Dim ctl As WinForm.Control = e.Sender
Select
 Case ctl.BindingField 
    Case 
"
表名"
        If 
_UserGroup  <> "普通用户" Then

            ctl.ReadOnly = BooleanEnum.False \'允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True 
\'
禁止编辑
        End If
  
End Select  

窗口的全局事件Enter事件中设置了此段代码运行,发现不起作用,任何用户都可以在窗口里编辑录入数据,不明白是否代码有改写错误,正确的代码该怎么写。



--  作者:hch
--  发布时间:2015/5/31 10:10:00
--  
    根据帮助文件提示,自己反复琢磨,可以通过以下代码实现不同用户在窗体编辑数据的权限设置,但此段代码有些繁琐,哪位老师看看能否有更简洁的方法替换此段代码,给予指导,谢谢。

Dim ctl As WinForm.Control = e.Sender
Select Case ctl.BindingField 
    Case "职工信息.姓名", "职工信息.身份证号", "职工信息.民族", "职工信息.参加工作日期", "职工信息.所在科室", "职工信息.从事专业类别", "职工信息.医师执业证书编码", "职工信息.医师执业类别", "职工信息.医师执业范围", "职工信息.行政业务管理职务", "职工信息.学历", "职工信息.学位", "职工信息.所学专业", "职工信息.毕业院校", "职工信息.专科特长", "职工信息.本月人员流动情况", "职工信息.调入/调出时间","职工信息.备注", "职工信息.专业技术资格聘", "职工信息.政治面貌", "职工信息.入党团时间", "职工信息.籍贯", "职工信息.现有资格取得日期","职工信息.现有资格聘用日期", "职工信息.进院日期", "职工信息.聘用时间", "职工信息.专业技术资格评", "职工信息.编制情况", "职工信息.录入员", "职工信息.科室实际名称","职工信息.审核", "职工信息.审核人", "职工信息.审批日期", "职工信息.出生日期", "职工信息.工龄", "职工信息.年龄","职工信息.性别", "职工信息.资格取得时间","职工信息.院龄"
        If _UserGroup  <> "普通用户" Then
            ctl.ReadOnly = BooleanEnum.False \'允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True \'禁止编辑
        End If
  End Select

--  作者:大红袍
--  发布时间:2015/5/31 10:31:00
--  

 全表控制?

 

Dim ctl As WinForm.Control = e.Sender
If ctl.BindingField  Like "职工信息.*" Then
    If _UserGroup  <> "普通用户" Then
        ctl.ReadOnly = BooleanEnum.False \'允许编辑
    Else
        ctl.ReadOnly = BooleanEnum.True \'禁止编辑
    End If
End If


--  作者:hch
--  发布时间:2015/5/31 14:45:00
--  
谢谢,图片点击可在新窗口打开查看
--  作者:nanatu
--  发布时间:2015/7/15 22:30:00
--  
我想问下,如果我要控制某一列的输入人呢,代码怎么写,放在什么地方啊!尝试了很久,没成功
--  作者:大红袍
--  发布时间:2015/7/15 22:34:00
--  

  控制表还是控制控件?

 

http://www.foxtable.com/help/topics/2255.htm

 


--  作者:nanatu
--  发布时间:2015/7/15 23:23:00
--  
控制表
--  作者:nanatu
--  发布时间:2015/7/15 23:28:00
--  
用户登录是自定义的,用户名都在外部数据源中,我在项目以及表中都针对用户做了权限设置,结果都没成功啊
--  作者:大红袍
--  发布时间:2015/7/16 0:09:00
--  
  看6楼的帮助,user.name改成_UserName
--  作者:nanatu
--  发布时间:2015/7/16 0:12:00
--  
窗口中关联的表也这样控制吗