Foxtable(狐表)用户栏目专家坐堂 → 单元格填入数据锁定


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

主题:单元格填入数据锁定

帅哥哟,离线,有人找我吗?
yifan3429
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
单元格填入数据锁定  发帖心情 Post By:2015/5/25 15:59:00 [只看该作者]

这是一张进度表   每个部门主管填写自己的所属列  任何一个单元格 填入数据  这个单元格将被锁定   只有通过菜单栏解锁按钮才能解锁修改
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150525154001.png
图片点击可在新窗口打开查看
 求助代码,
[此贴子已经被作者于2015/5/25 15:59:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/25 16:03:00 [只看该作者]

这样的话,做起来就比较复杂麻烦了

可以换个思路

PrepareEdit事件  

if e.row.isnull(e.col.name)=false then
  e.cancel=true
end if
这段代码,如果单元格不是空就不允许编辑

解锁按钮代码,把单元格内容清空.
dim t as table=tables("XX")
t.current(t.cols(t.colsel).name)=nothing


 回到顶部
帅哥哟,离线,有人找我吗?
yifan3429
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2015/5/25 17:06:00 [只看该作者]

Select Case User.Group
    Case "涂装部"
        Select Case e.Col.Name
            Case "备料日期","机加工日期","贴皮日期" ,"组装日期","入库日期"
                e.Cancel = True
        End Select
    Case "木工部"
        Select Case e.Col.Name
            Case "砂磨日期","做灰日期","底漆日期" ,"面漆日期","入库日期","油磨日期"
                e.Cancel = True
        End Select
End Select

If e.Row.isnull(e.Col.name)=False Then
    If User.Group <> "生产厂长" Then
        e.cancel=False
    End If
End If

可以这个方案解决  我的代码不多   求调整    不能控制
[此贴子已经被作者于2015/5/25 17:06:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/25 17:10:00 [只看该作者]

If e.Row.isnull(e.Col.name)=False Then
    If User.Group <> "生产厂长" Then
        e.cancel=False
    End If
End If
这段放前面

 回到顶部
帅哥哟,离线,有人找我吗?
yifan3429
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2015/5/25 17:42:00 [只看该作者]

还是这个表上的问题  如果备料日期没有填  机加工日期就不能填写    如果 备料  机加工日期都没填  组装就不能填写   用什么控制  怎么控制

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/25 17:50:00 [只看该作者]

 一样写到prepareEdit事件,比如

 

If e.Col.Name = "机加工日期" Then

    If e.Row.IsNull("备料日期") hen

        e.Cancel = true

    End If

ElseIf e.Col.Name = "组装" Then

    If e.Row.IsNull("备料日期") OrElse e.Row.Isnull("机加工日期") Then

        e.Cancel = true

    End If

End If


 回到顶部