以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]锁定表的单元格问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=40111)

--  作者:foskycn
--  发布时间:2013/9/9 22:25:00
--  [求助]锁定表的单元格问题
这是PrepareEdit 的代码:

If e.Col.Name = "请购" AndAlso e.Row("物料状态") = "已请购" Then
    e.Cancel = True
End If
If e.Col.name = "物料状态" AndAlso e.Row("物料状态") IsNot Nothing Then
    e.cancel = True
End If
第一个条件能够正常实现,也就是当物料状态为已请购时,请购列的当前行能锁定
第二个条件是当物料状态不为空时,物料状态的当前行也要锁定。可是以上代码把整个物料状态列全锁定了,请老师指教!

--  作者:有点甜
--  发布时间:2013/9/9 22:34:00
--  
这个肯定啊,锁定 物料状态,根据的就是 物料状态的值,只要这一列锁定了一次,就自然永久锁定了吖。

--  作者:foskycn
--  发布时间:2013/9/9 22:37:00
--  
我还以为像逻辑列那样可以每次只锁定列的当前行,谢谢有点甜!!!
这样也可以接受,反正这一列的值都是自动代码输入的。
不过能不能做到每次只锁定列的当前行呀?

--  作者:有点甜
--  发布时间:2013/9/9 22:41:00
--  
是锁定当前行的哦。每一行,如果满足条件,就锁定。

你锁定所有行,可能是因为你每一行的 物料状态 值都不是空的 e.Row("物料状态") IsNot Nothing 
[此贴子已经被作者于2013-9-9 22:41:15编辑过]

--  作者:有点酸
--  发布时间:2013/9/9 22:49:00
--  

这个有点问题:
e.Row("物料状态") IsNot Nothing
 
应该:
e.row.isnull("物料状态") =false

原因:

http://www.foxtable.com/help/topics/1470.htm

 

 


--  作者:foskycn
--  发布时间:2013/9/9 22:53:00
--  
解决了,非常感谢两位

 改为:e.row.isnull("物料状态") =false  就正常了

还是帮助没吃透!