技术开发 频道

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:

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

  Effect:

  ③控制数据块某个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
相关文章