以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]列的权限问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96420) |
-- 作者:紫色幽魂 -- 发布时间:2017/2/20 16:23:00 -- [求助]列的权限问题 请教下,一个表我只希望某个组的人只能编辑这几列,别的列不能编辑,我这样写为什么不行,用窗口加载一个table表的话权限是不是要另外写,是写在哪个事件呢 Dim lms() As String = {"费用_试样加工费","试验_检测日期"} Dim l As DataCol If User.Group <> "理化" AndAlso User.Type <> UserTypeEnum.Developer Then For Each lm As String In lms If l.Name = lm Then e.Cancel = True Else e.Cancel = False End If Next End If |
-- 作者:有点蓝 -- 发布时间:2017/2/20 18:02:00 -- 如果是主表和副本,直接使用这个代码没有问题。如果是sqltable,在窗口表事件中写 |
-- 作者:紫色幽魂 -- 发布时间:2017/2/20 18:06:00 -- 回复:(有点蓝)如果是主表和副本,直接使用这个代码... 但是我在表里面写在PrepareEdit事件后都不能编辑了,这两个列外的也没有列外了 |
-- 作者:有点色 -- 发布时间:2017/2/20 18:11:00 -- Dim lms() As String = {"费用_试样加工费","试验_检测日期"}
If User.Group <> "理化" AndAlso User.Type <> UserTypeEnum.Developer Then
If array.IndexOf(lms, e.col.Name) >= 0 Then
e.Cancel = false
else
e.Cancel = true
End If
End If |
-- 作者:紫色幽魂 -- 发布时间:2017/2/21 11:03:00 -- 回复:(有点色)Dim lms() As String = {"费用_试样... 还是可以编辑,没有限制,加上msgbox调试也没有反应 |
-- 作者:有点蓝 -- 发布时间:2017/2/21 11:26:00 -- msgbox(User.Group) msgbox(User.Type.ToString()) 弹出看看用户的信息
|
-- 作者:紫色幽魂 -- 发布时间:2017/2/21 11:31:00 -- 回复:(有点蓝)msgbox(User.Group)msgbox(User.Type... 用的是开发者账号登录的,开发者没有分组,所以第一个是空的,第二个弹出Developer |
-- 作者:有点蓝 -- 发布时间:2017/2/21 11:40:00 -- 你的逻辑有点看不懂:是“理化”的才可以编辑,还是,不是“理化”的才可以编辑,开发者能不能编辑? |
-- 作者:紫色幽魂 -- 发布时间:2017/2/21 11:44:00 -- 回复:(有点蓝)你的逻辑有点看不懂:是“理化”的才... 我想的是如果分组是理化,就只能编辑这两列,别的不能编辑,但是我想开发者可以编辑全部的,所以就把开发者也加进去了,但是这样好像不对,后面再改,主要是理化只能编辑这两列,开发者现在加进去只是为了在不切换用户的时候进行测试 |
-- 作者:有点蓝 -- 发布时间:2017/2/21 12:03:00 -- Select Case e.Col.Name Case "费用_试样加工费","试验_检测日期" Case Else If User.Group = "理化" AndAlso User.Type <> UserTypeEnum.Developer Then e.Cancel = True End If End Select
|