以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  只读和可编制如何控制  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=23549)

--  作者:lfxxdt
--  发布时间:2012/9/12 11:35:00
--  只读和可编制如何控制

If User.Group = "工程部" Then
    Forms("工艺流程").show()
Else
    Forms("工艺流程").Cancel = True
End If

我想以上{工艺流程}是工程部的人员可进行编写修改,不是工程部的人员是只读,不能进行任何修改;以上代码不能运行,是什么原因。


--  作者:狐狸爸爸
--  发布时间:2012/9/12 11:56:00
--  

工艺流程是个窗口吧?

你可以做个按钮来打开这个窗口,按钮的代码是:

 

If User.Group = "工程部" Then
    Forms("工艺流程").show()
Else

    Messagebox.show("你无权修改工艺流程")
End If

 

如果工艺流程是个列,你看看:

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

 


--  作者:lin_hailun
--  发布时间:2012/9/12 11:56:00
--  
多种方法,你可以设计两个不同的窗口。

或者,在打开窗口的时候,遍历所有的控件,把控件的属性ReadOnly设置成true。

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

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

--  作者:lfxxdt
--  发布时间:2012/9/12 12:16:00
--  
工艺流程是一个窗口的名字,我是工程部的人员打开,是可进行编写的,不是工程部的人员打开,是不可编写的,是只读模式。
--  作者:狐狸爸爸
--  发布时间:2012/9/12 12:19:00
--  

设置窗口的AfterLoad事件:

 

If User.Group <> "工程部"  Then
    For Each ctl As WinForm.Control In e.Form.Controls
        ctl.ReadOnly = BooleanEnum.True
    Next
End If