Foxtable(狐表)用户栏目专家坐堂 → [求助]多部门员工,协调填的表A里面多列(列如果有值,数据保存后不能编辑)总经理才有权编辑


  共有2994人关注过本帖树形打印复制链接

主题:[求助]多部门员工,协调填的表A里面多列(列如果有值,数据保存后不能编辑)总经理才有权编辑

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113488 积分:577935 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/7 9:29:00 [显示全部帖子]

只有一种办法做到动态,就是所有需要控制的列名称都必须有规律,比如统一这样的名称;a_第一列,a_第二列,a_第三列......

If e.Col.Name.StartsWith("a_") Then
    If e.Row.IsNull(e.Col.name) = False  Then '如果已经有内容
        If e.Row("已提交") = True AndAlso User.Name <> "张经理" Then '且用户不是张经理
            e.Cancel = True '那么禁止编辑
        End If
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113488 积分:577935 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/7 16:48:00 [显示全部帖子]


 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113488 积分:577935 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/7 17:20:00 [显示全部帖子]


Dim ctl As WinForm.Control = e.Sender
ctl.ReadOnly = BooleanEnum.False '允许编辑
Dim r As Row = Tables("表A").Current
If r IsNot Nothing AndAlso ctl.BindingField > "" Then
    If r.IsNull(ctl.BindingField.Split(".")(1)) = False  Then '如果已经有内容
        If r("已提交") = True AndAlso User.Name <> "张经理" Then '且用户不是张经理
            ctl.ReadOnly = BooleanEnum.True '禁止编辑
        End If
    End If
End If

 回到顶部