以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助][讨论]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=89332)

--  作者:13555205587
--  发布时间:2016/8/19 10:49:00
--  [求助][讨论]

在这里求助一个关于表事件与窗口事件的矛盾,问题如下:

 

这里我先对两名用户设置了查看权限

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
图片点击可在新窗口打开查看

 

 

这里我又对部分用户设置了编辑权限

Select Case User.Group
    Case "业务部"
        Select Case e.Col.Name
            Case "物料编码", "车型装备名称", "部件系统名称", "部件名称1", "部件名称2", "零件名称", "图号代号", "技术参数说明", "图示照片", "外形尺寸", "单位数量", "单位重量", "规格"
                e.Cancel = True

        End Select
End Select

虽然对于这几名用户这几列已被锁定,单在设计的显示窗口中依然可以编辑,在显示窗口的textbox中更改了信息也就等于是更改了表中的信息。

如图


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160819103951.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
图片点击可在新窗口打开查看

 

我对电脑并不太了解,这些也都是跟着帮助里的信息做的,后续的解决办法帮助里真的是没有了,希望大家给点意见,如何解决此问题,十分感谢


--  作者:Hyphen
--  发布时间:2016/8/19 10:52:00
--  
Dim ctl As WinForm.Control = e.Sender
If User.Group = "技术部" orelse User.Group = “业务部”Then
    ctl.ReadOnly = BooleanEnum.False
Else
    ctl.ReadOnly = BooleanEnum.True
End If
--  作者:13555205587
--  发布时间:2016/8/19 10:57:00
--  
谢谢 这么简单啊
--  作者:Hyphen
--  发布时间:2016/8/19 11:04:00
--  
Tables("配件数据库").Cols.Remove效果和隐藏列一样,绑定还是可以看见的

在窗口afterload事件,把对应列绑定的控件隐藏,或者去掉绑定。

--  作者:13555205587
--  发布时间:2016/8/19 11:11:00
--  
还请高手指点如何把对应列绑定的控件隐藏,请给出部分代码,十分感谢
--  作者:Hyphen
--  发布时间:2016/8/19 11:13:00
--  
隐藏:http://www.foxtable.com/webhelp/scr/0715.htm


--  作者:13555205587
--  发布时间:2016/8/19 13:03:00
--  
问题已解决,感谢!!!