您的位置:首页 > 其它

EBS FORM 个性化笔记

2014-10-23 19:27 447 查看
FORM 个性化一般是用于对标准FORM 进行简单的二次开发

路径: 工具栏 -> 帮助 -> 诊断 -> 自定义代码 -> 个性化



在图中所示部分 添加 触发器事件 ,以及 触发条件。触发条件可以包括 :parameter.p_1 ,:block.item_1 等,例如判断某个item的值是否为空等。

然后在活动中添加触发器的内容

一共包括4种类型

1.特性

用于改变FORM中各组件的属性,相当于set_block_property ,例如可以改变 画布隐藏与否,按钮是否可以点击,item是否可以更改等

2.消息

用于弹出提示消息,相当于 fnd_message.debug

3.内置

用于调用各类功能,并发程序等,包括表单

调用功能有一个需要注意的地方是 传递参数

参数有两种形式

1.给定的字符串。例如app_find.find('bolck'); 个性化之后,点击个性化的功能,一定会调用这个过程/方法

2.动态的参数。传参的方式为 =‘parameter1=’||:block.item1||'parameter2='||:block.item2 实际上就是 = string

4.菜单

用于在工具栏中添加功能,选择special/menu等,这样就可以在工具栏中调用相应的功能。添加完菜单功能后,需要另外定义一个个性化的功能来响应这个功能。

添加快捷键:

给个性化功能添加快捷键:只需要在 功能名后面 添加(&a) ,例如function(&a),快捷键为a

关于个性化开发需要特别注意的一个地方:

为什么有些时候添加的个性化代码不执行?

个性化代码作用的原理是在APP_STANDARD.EVENT 触发器里添加相应的代码。而这个触发器的位置是跟我们之前选择的触发器位置相关。(一般为when-new-form-instance)这时就会在 when-new-form-instance里添加APP_STANDARD.EVENT,进而调用这个触发器里面的代码,实现个性化的效果。我们添加的触发器全都属于FORM级。

因此,选择的触发器位置会影响个性化代码是否执行。相同的事件,例如WHEN-NEW-RECORD-INSTANCE,在form,block,item里都有,而优先级一般为item>block>form。如果我们选择的触发器位置为WHEN-NEW-RECORD-INSTANCE,item级的就会覆盖掉form级的,因此有可能导致我们的个性化代码不被执行。

同理,触发器条件 before/override/after也是影响个性化代码是否执行的因素。

对应的触发器的属性设定不一样的时候,测试的结果:

Item:Before/Block: Before /Form: Before

执行效果: Item-->Block-->Form

设为Before,执行顺序正常,从小到大。

Item:After/Block:Override/Form:Override

执行效果:Block-->Item-->Form级不执行

设为Override,则就是对应层次的触发器的断点。上一级的不会被执行。

Item:After/Block:Override/Form:After

执行效果:Block-->Item-->Form级不执行

Item:After/Block:Override/Form: Before

执行效果:Block-->Item-->Form级不执行

Item:After/Block: After/Form:After

执行效果:Form-->Block-->Item

设为After的话,执行的顺序会颠倒。

Item:After/Block: After/Form:Override

执行效果:Form-->Block-->Item

设为After的话,执行的顺序会颠倒。

Item:After/Block: Before/Form:Override

执行效果:Block -->Form-->Item
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: