以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  锁定逻辑列的值后,还能再取消吗  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188400)

--  作者:lesei
--  发布时间:2023/9/18 21:56:00
--  锁定逻辑列的值后,还能再取消吗
有两列,一列叫审核,一列叫批准。
这俩都是逻辑列。
要求:审核后,该行锁定。
我是怎么做的?
在datacolchanging里加代码,参图1

图片点击可在新窗口打开查看此主题相关图片如下:img_20230918_214851.jpg
图片点击可在新窗口打开查看

即,当审核列与批准列都没有勾选的时候(即二者值都为false),我点击审核列(逻辑列,打对勾),工作正常。
此时,审核列的值变为true,而批准列的值仍为false,然后用datarow.locked锁定该行。
然后,我再点击审核列,为啥代码死活进不了红色线标记的那个分支啊?
问题:
1.因为该行已经被locked了,所以无法更改?所以自然也就无法触发datacolchanging?
2.如弟1所说,那但凡是locked的单元格,岂不是都无法回归正常状态了?
3.从正常思维来说,一列的值控制对应行是否锁定,然后通过点击该列来实现锁定、解锁切换,都是正常的呀。那这种要求应该怎么实现?
[此贴子已经被作者于2023/9/18 21:58:46编辑过]

--  作者:有点蓝
--  发布时间:2023/9/18 23:11:00
--  
确实,锁定的行是无法更改的,需要先解锁。这种用法比较适合设计窗口,在窗口按钮中审核和反审核。

如果要在表格里操作,就不能锁定行了,可以到prepareedit事件控制某些列可以/不可以编辑