以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于AllowEdit的一点疑问  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=106793)

--  作者:huangxueyao
--  发布时间:2017/9/15 16:13:00
--  关于AllowEdit的一点疑问
发现一个很奇怪的问题。
控件中的副本表属性AllowEdit为false的时候,
afterload里面写cols代码AllowEdit为true(代码如下),结果不起作用,所有列不允许编辑,整个表被锁定。

但是反过来,
控件中的副本表属性AllowEdit为true的时候,
afterload里面写cols代码AllowEdit为false,结果就可以,只锁定对应列。

为什么会这样咧?


Dim tr As Row = Tables("副-订单编辑_Table1").Current
With Tables("副-订单编辑_Table1")
    If User.Group = "门店" Then
        If tr("订单状态") = "门店新订单"
            .Cols("需求量").AllowEdit = True
            .Cols("物料备注").AllowEdit = True
        End If
        If tr("订单状态") = "仓库已出货"
            .Cols("实收量").AllowEdit = True
        End If
    Else If User.Group = "PMC" Then
        If tr("订单状态") = "已提交PMC"
            .Cols("分配量").AllowEdit = True
            .Cols("物料备注").AllowEdit = True
        End If
    Else If User.Group = "分拣员" Then
        If tr("订单状态") = "PMC已确认"
            .Cols("实发量").AllowEdit = True
        End If
    Else If User.Group = "仓库" Then
        If tr("订单状态") = "门店已回单"
            .Cols("结算量").AllowEdit = True
        End If
    End If
End With

--  作者:有点甜
--  发布时间:2017/9/15 16:16:00
--  

锁定表以后,整个表不能编辑了,你解锁列没有效果的。

 

 


--  作者:huangxueyao
--  发布时间:2017/9/15 16:24:00
--  
你看我代码,我本来是想要锁定大部分列,只开放一两个列给他们填写的,
现在要用代码怎么实现?
我意思是更加简洁的方法。
[此贴子已经被作者于2017/9/15 16:24:07编辑过]

--  作者:有点甜
--  发布时间:2017/9/15 17:17:00
--  

在前面加上代码

 

For Each c As Col In Tables("副-订单编辑_Table1").cols
    c.AllowEdit = False
Next


--  作者:huangxueyao
--  发布时间:2017/9/15 18:14:00
--  
是的,现在就是这样解决……