主题:[讨论]grid能不能只允许编辑一行,其他行只读
muchmorer
[专家分:180] 发布于 2010-01-07 15:10:00
由于某种需要,我想实现这种功能,比如:只有当前选中的某行可以编辑,其他的行都不能编辑。谢谢各位了。
回复列表 (共11个回复)
沙发
jianzho [专家分:7560] 发布于 2010-01-08 12:15:00
想的太离奇了吧!
板凳
billjiang [专家分:50] 发布于 2010-01-08 13:32:00
--只可能编辑你选中的行啊--说的具体点,目的何在?
3 楼
ldg [专家分:10] 发布于 2010-01-08 15:58:00
我想是能实现,但要从源头做起,这个东东没有现成的的主要原因是价值问题。
4 楼
sywzs [专家分:5650] 发布于 2010-01-09 10:32:00
在表单的 load 或 init 事件中加入
PUBLIC nROW
“插入”按钮的 click 事件(或菜单的“插入”子菜单项)代码
APPEND BLANK
nROW=RECNO()
GO nrow
thisform.grid1.Refresh
“修改”按钮的 click 事件(或菜单的“修改”子菜单项)代码
nROW=RECNO()
在表格的 AfterRowColChange 事件代码
this.ReadOnly=IIF(RECNO()=nROW,.F.,.T.)
以上设置,可以使grid只允许编辑一行。
5 楼
zhaoyufei [专家分:550] 发布于 2010-01-09 10:35:00
“只编辑选中行”是自相矛盾的,因为不选中你如何编辑?
当然只编辑符合某种条件的行是可以的,在afterrowcolchange事件里,判断条件,决定是否readonly
忠告各位朋友,问问题一定要坦诚,不要怕别人学了你的思路,故意把问题伪装一下,我是对事不对人,顺便谈我的观点,绝不是批楼主
6 楼
homayzh [专家分:7040] 发布于 2010-01-09 11:38:00
很简单啊,
7 楼
muchmorer [专家分:180] 发布于 2010-01-11 11:12:00
看来是我说的不够明白,我的意思是:在grid中,为防止数据随意被改动,整个表格设为只读,如果发现某条确实需要改动,就将此行中的“是否全对”改为“否”(”是否全对“为一字段,在表格中设为可以修改,值为”是,否“),此时表格中当前的行可以修改,而其他行都是只读的。
本来我觉得这个问题够蹊跷的,没抱多大希望,结果还是有很多热心人出手相助,谢谢了。我认为有价值的帖子已经加分。
8 楼
GEORGECHIN [专家分:440] 发布于 2010-01-12 22:30:00
用SET DELE ON/OFF 應該也可以解決的吧?
如果確認這個數量不需要改,那就把表格的DELEMARK選中,讓他不顯就好了.
9 楼
zhaoyufei [专家分:550] 发布于 2010-01-13 21:06:00
在afterrowcolchange事件里,判断“是否全对”条件,如果为“否”则除这一列都为可写(只读为F)
否则,除这一列都为只读(只读为T),不用担心其他行被修改,因为光标不在那一行,没法改
10 楼
zhengxinhai [专家分:30] 发布于 2010-03-18 18:27:00
四楼,运行后提示this.ReadOnly=IIF(RECNO()=nROW,.F.,.T.)操作数有问题,请问怎样解决?
我来回复