|
|
发表于 2011/6/16 10:17:00
|
显示全部楼层
本帖最后由 gzb8612 于 2011/6/16 10:17 编辑
1.估计SET_ITEM_PROPERTY无法实现你想要的effect。
假如有十行十列,使用set_item_property设置当前item为只读,则会将item的十行都为只读,而不是当前行为只读,其他九行非只读。
2.可以使用SET_ITEM_INSTANCE_PROPERTY这个东东,可以实现只读和修改的控制。
举个例子,在POST-QUERY中加入:
--flag = 'N'
IF NVL(:BLOCK.FLAG,'N') = 'N'THEN
--只读
SET_ITEM_INSTANCE_PROPERTY('BLOCK.ITEM',CURRENT_RECORD,UPDATE_ALLOWED,PROPERTY_FALSE);
SET_ITEM_INSTANCE_PROPERTY('BLOCK.ITEM',CURRENT_RECORD,INSERT_ALLOWED,PROPERTY_FALSE);
else
--取消只读
SET_ITEM_INSTANCE_PROPERTY('BLOCK.ITEM',CURRENT_RECORD,UPDATE_ALLOWED,PROPERTY_TRUE);
SET_ITEM_INSTANCE_PROPERTY('BLOCK.ITEM',CURRENT_RECORD,INSERT_ALLOWED,PROPERTY_TRUE);
END IF;
以上这个例子只针对单个item,如果需要对整行的ITEM进行只读控制,就横向循环这个行的item吧。(不知道能否明白我说的)
如想了解SET_ITEM_INSTANCE_PROPERTY的用法,请参考form的帮助。
3.至于删除的话,可能需要在trigger里头单独进行判断
当flag是N的时候,用户执行delete操作,程序就raise |
|