ebs form开发总结(6)

2018-12-05 20:50

五.触发器

1.when-new-record-instance

一般触发条件:是每次在光标进入 Record 后触发(when-new-block-instance先触发)。 其他触发条件:在删除行块的最后一条记录,保存时,它会检验记录有没有数据,如果有必输字段没有数据,则会不断提示你输入数据。

2.when-create-record

作用:主要用于给新纪录指定某些栏位的缺省值,一般为item赋初值时写在该触发器内。

触发条件:创建record时触发。 触发场景:

第一次进入form时,WHEN-CREATE-RECORD触发在前,when-new-form-instance触发在后。

进入block时(即打开窗口时),when-create-record也会触发。 进入新的记录时,会触发。 关闭窗口时,也会触发。

查询窗口点击清除按钮时,也会触发,所以赋初值放在该触发器内。

when-create-record先于 pre-record 执行

WHEN-CREATE-RECORD的三大定律一大推论:

1.如果BLOCK是可INSERT的,且BLOCK的记录数为0,则在PRE-BLOCK之前必会调用 2.如果BLOCK是当前块,且是可INSERT的,如果记录数为0,则会调用。比如,CLEAR_BLOCK时,执行查询但未查到记录时 3.如果BLOCK得状态是NEW,那么每次FOCUS ON该BLOCK时,都会触发;QUERY,CHANGED不会

例子:http://note.youdao.com/share/?id=92c68dae0ea7150fa10cc8c7ee345e94&type=note

3.pre-record

一般没进入一行数据之前都会触发,因为查询后也会触发,用于控制block,item的状态。

注意:

触发器内,先设置 item能否更新,即是否灰显,再设置块的增删改属性。不然可能会导致使用F11+ctrl F11后,item变成必输的样式。

4.do-key 和execute_trigger

execute_trigger:用来运行一个指定的触发器,一般是用户自定义的触发器。 do-key:运行一个关联了键(Key)的内置触发器

注意:do-key的参数是关联了key的内置子程序,不是键触发器本身。

例如,在默认的处理中,如果when-validate-item触发器失败,那么它会抛出一个异常并停止form的运行,但是,如果when-validate-item是由execute_trigger来调用执行的,那么如果调用执行失败了,这个失败并不会停止form的运行

六.PLSQL相关

1.MOAC对于OU的控制(暂时没理解逻辑的,但是代码可以大概看懂)

moac.txt

2. 手动建立库存组织模板,增加org_id参数:

1、从INVSTANDARD.fmb中拖INV_PARAMS到我们的Form中,并用Subclass,这样会 生成4个参数。

2、在FORM级的trigger pre-form中加上:FND_ORG.CHOOSE_ORG; 3、想把库存组织显示在窗口上面的话在form level 的trigger when-new-form-instance(或者when-new-block-instance视情况而定)中加上:APP_WINDOW.SET_TITLE('WDW_XXX',:PARAMETER.ORG_CODE);

3. fnd_standard.set_who函数

EBS系统在在进行客户化表结构设计的时候,会建立如下5个who字段,用来记

录用户的相关信息,这5个字段是:

CREATE_BY NUMBER CREATE_DATE DATE

LAST_UPDATE_BY NUMBER LAST_UPDATE_DATE DATE LAST_UPDATE_LOGIN NUMBER

一般form开发时,设置CREATION_DATE和LAST_UPDATE_DATE两个字段的subclass为:CREATION_OR_LAST_UPDATE_DATE,这样可以看到form的更新日期是谁。 一般在XXXX_private包中会包含该代码。

4.item的动态布局

基本思路: ①.改变LIST item的值,在when-list-changed(或者其他触发器)内包含如下代码 DECLARE

timer_id timer; BEGIN

timer_id := create_timer('SET_LINE_LAYOUT', 1,

no_repeat); END;

参数1:表示这个timer定时器的名字 参数2:表示执行定时器的间隔时间

参数3:是否重复执行,还有一个值为repeat(重复执行)

②在FORM级的WHEN-TIMER-EXPIRED内调用

IF get_application_property(timer_name) = 'SET_LINE_LAYOUT'THEN

SET_LINE_DYMIC_LAYOUT(:pc_req_headers.DOC_TYPE_CODE,'PC_REQ_HEADERS'); ENDIF;

③. SET_LINE_DYMIC_LAYOUT是一个存储过程。

关于代码详解:

动态行布局.txt


ebs form开发总结(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:室内给水子分部工程、分项工程验收记录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: