oracle form set_block_property,ORACLEERP开发基础之OracleForms基础(二)

用代码控制ITEM属性

1、用代码控制ITEM的可用性。

1.1、SET_ITEM_PROPERTY和SET_ITEM_INSTANCE_PROPERTY:

如果是控制单行记录或者多行记录中的全部记录:SET_ITEM_PROPERTY

如果是控制多行记录中的单一行记录:SET_ITEM_INSTANCE_PROPERTY

1.2、理解它们的最好区别就是亲自动手写一例子。

例: ①控制数据块T_TEST(多条记录)的ITEM的某一条记录是否可更改。

SET_ITEM_INSTANCE_PROPERTY(?T_TEST.TID‘, CURRENT_RECORD,UPDATE_ALLOWED,PROPERTY_FALSE);

SET_ITEM_INSTANCE_PROPERTY('T_TEST.TID', CURRENT_RECORD,INSERT_ALLOWED,PROPERTY_FALSE);

Effect:

8d2a8207ef1581f1b982f9549ec75b4a.png

③ 控制数据块T_TEST(多条记录)的单个ITEM的全部记录是否可更改。

2ef7326dd6915a9d64dc79908eaa86bb.png

Effect:

56d9f03194c9e1b35d3ea00c946ce63c.png

③控制数据块某个ITEM只允许insert,不允许delete.

在when-new-form-instance中加入

--先将数据块设为不可删除

set_block_property('T_TEST ',delete_allowed,property_false);

--然后对ITEM设为不可update set_item_property(' T_TEST .TID',

update_allowed,property_false);

2、用代码控制ITEM的可见性

SET_ITEM_PROPERTY('CONTROL.ITEM1', ENABLED, PROPERTY_FALSE);

在when-new-record-instance控制BLOCK的可用状态

这个触发器很好用,例如:可以根据主块的某个项的值,来控制子块是否可操作。

Begin

If :blockname.test = ?Y‘ then

set_block_property('blockname',DELETE_ALLOWED,PROPERTY_FALSE);

set_block_property('blockname',INSERT_ALLOWED,PROPERTY_FALSE);

set_block_property('blockname',UPDATE_ALLOWED,PROPERTY_FALSE);

end if;

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值