一般的处理逻辑为在块的WHEN-NEW-RECORD-INSTANCE中设置开的delete_allowed的属性,但是当在record之间进行跳转时发现工具条上的删除按钮不能实现及时同步变化,也就是在不能删除的记录上,工具栏上的删除按钮是可用的,但是点击时系统提示该记录不允许删除;在可以删除的记录上时工具栏的删除按钮是不可用的.
对于这种多记录块,实现根据行状态确定该条记录是否可删除我目前所知道的由两种方式实现:
第一种方式: 直接在块级的KEY-DELREC触发器中编写如下代码
IF 票据状态<>’新建’ THEN
FND_MESSAGE.DEBUG(‘该票据不为新建状态,不能删除!’);
Raise form_trigger_failure;
Else
App_folder.event(‘KEY-DELREC’);
END IF;
第二中方式:在块WHEN-NEW-RECORD-INSTANCE里面设置块的属性,最后加上一个同步代码
IF 票据状态<>’新建’ THEN
Set_block_property(‘BLOCK_NAME’,delete_allowed,property_false);
ELSE
Set_block_property(‘BLOCK_NAME’,delete_allowed,property_true);
END IF;
APP_STANDARD.SYNCHRONIZE;
同过上述两种方式可以方便的实现多记录块根据行状态确定行是否可删除的功能,第一种方式不需要设置块的delete_allowed属性,同样也就不需要关心工具栏上的删除按钮的是否可用,第二种方式是直接设置块的delete_allowed属性,在设置完该属性后需要使用
APP_STANDARD.SYNCHRONIZE;来同步下工具栏的状态.