在这里求助一个关于表事件与窗口事件的矛盾,问题如下:
这里我先对两名用户设置了查看权限
Select Case User.Name
Case "", ""
Tables("配件数据库").Cols.Remove("单价")
Tables("配件数据库").Cols.Remove("HS编码")
Tables("配件数据库").Cols.Remove("生产供应商")
Tables("配件数据库").Cols.Remove("采购或销售合同单号")
Tables("配件数据库").Cols.Remove("所属用户")
Tables("配件数据库").Cols.Remove("退税率")
End Select
虽然这几列在打开表时被移除了,但在设计的显示窗口中依然可见被移除列的信息。
如图
此主题相关图片如下:qq截图20160819103430.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2016-8/201681910325824961.png)
这里我又对部分用户设置了编辑权限
Select Case User.Group
Case "业务部"
Select Case e.Col.Name
Case "物料编码", "车型装备名称", "部件系统名称", "部件名称1", "部件名称2", "零件名称", "图号代号", "技术参数说明", "图示照片", "外形尺寸", "单位数量", "单位重量", "规格"
e.Cancel = True
End Select
End Select
虽然对于这几名用户这几列已被锁定,单在设计的显示窗口中依然可以编辑,在显示窗口的textbox中更改了信息也就等于是更改了表中的信息。
如图
此主题相关图片如下:qq截图20160819103951.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2016-8/201681910382650373.png)
所以我只好设置窗口的Enter事件 将其根据不同用户进行锁定
Dim ctl As WinForm.Control = e.Sender
If User.Group = "技术部" Then
ctl.ReadOnly = BooleanEnum.False
Else
ctl.ReadOnly = BooleanEnum.True
End If
但是这里只能对一个用户或者一个部门设置权限
如果按一下进行编辑
Dim ctl As WinForm.Control = e.Sender
If User.Group = "技术部" or “业务部”Then
ctl.ReadOnly = BooleanEnum.False
Else
ctl.ReadOnly = BooleanEnum.True
End If
则显示如下信息
此主题相关图片如下:qq截图20160819104420.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2016-8/201681910423835927.png)
我对电脑并不太了解,这些也都是跟着帮助里的信息做的,后续的解决办法帮助里真的是没有了,希望大家给点意见,如何解决此问题,十分感谢