ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:649.45KB ,
资源ID:20513933      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20513933.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ebs form开发总结Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ebs form开发总结Word下载.docx

1、第一步:使用data block wizard创建块第二步:ROW_ID项的子类名设置为ROW_ID。 其他需要显示在画布上的项设置子类, 另设置显示在STK画布上的属性:第三步:将数据块中显示在STK上的项复制到PROMT块中,并设置数据块中的trigger(模板中的FOLDER块有现成的trigger)PRE-QUERY/POST-QUERYWHEN-NEW-BLOCK-INSTANCE /WHEN-NEW-RECORD-INSTANCE 提示项的item type为display,子类为FOLDER_PROMT_MULTIROW第四步:在when-new-form-instance初始化

2、form。使用app_folder.define_folder_block如果用到了FIX画布,需要使用参数8第五步:在画布上调整布局设置块的Scrool Bar Canvas在fix画布上注意:ITEM名称画布子类FOLDER_SWITCHERFIXSWITCHERDRILLDOWN_RECORD_INDICATORFOLDER_TITLEDYNAMIC_TITLEFOLDER_OPENFOLDER_DUMMYTOOLBARORDER_BY1STKFOLDER_ORDERBY第六步:在WHEN-WINDOW-RESIZED触发器内if :system.event_window in (MAI

3、N,DOCTXN_DETAILS) then app_folder.event(WHEN-WINDOW-RESIZED);end if;2.TAB页的Folder功能原理:与无tab页不同就是创建画布时,我们会选择创建一个tab_canvas类型的画布假如你要显示的item都来自一个block,则我们只需要一个fix画布;如果画布上的item来自多个block,则需要多个fix画布。我们通过when-tab-changed触发器和show_view(hide_view)来控制画布的显示与隐藏2.1 首先要创建类型为Tab的画布,在画布下添加两个子类为Tab_page的画布,注意的是最好使得这两

4、个画布的名称和将来放在两画布上的stacked画布名称一致。如下图左2.2 画布建好以后,我们来看如何布局。首先将MAIN_TAB画布,堆叠在MAIN画布上,再将图中TAX画布(fix和stacked画布)和BASE画布(同上)堆叠在MIAN_TAB画布,尽量保持TAX和BASE重合,就是说x和y坐标相同。2.3 接下来就是在form builder中写显示和隐藏的代码FORM级的WHEN-TAB-PAGE-CHANGED以下的两个过程是为了防止bug参考(桌面ebs常用文档大全FOLDER)1.在FORM触发器内 ELSIF (event = FOLDER_RETURN_ACTION) TH

5、EN if(:global.folder_action = CONFIRM-HIDE-FIELD if :global.folder_filed = ADDITION1 THEN :global.folder_action_allowerd := FALSE; END IF; end if;2.在block触发器elsif event = WHEN-NEW-ITEM-INSTANCEthen curr_canvas_name := get_item_property(name_in(SYSTEM.CURSOR_ITEM), item_canvas); current_tab := get_ca

6、nvas_property(MAIN_TAB, topmost_tab_page); tab_canvas_name := name_in(SYSTEM.EVENT_CANVASIF curr_canvas_name IN (TAX_STKBASE_STKIF curr_canvas_name != current_tab THEN set_canvas_property(, topmost_tab_page, curr_canvas_name);ENDIF;3.说明性弹性域 第一步:在实际开发中(暂时做过的项目中),会提供给你注册的plsql块(保存在sql中),执行后,就会在ebs中注册。

7、在数据块中创建item,取名DF,类型text item,子类TEXT_ITEM_DESC_FLEX在DF项下,创建两个触发器WHEN-VALIDATE-ITEM -override代码:FND_FLEX.EVENT(WHEN-VALIDATE-ITEM)WHEN-NEW-ITEM-INSTANCE -beforeFND_FLEX.EVENT(WHEN-NEW- ITEM-INSTANCE)修改DF所在数据块的trigger,添加完成后初始化弹性域添加此代码:FND_FLEX.EVENT( .)使用fnd_descr_flex.define初始化弹性域启用弹性域1.先是查找出注册好的弹性域2.

8、进入段设置界面Open 弹性域3.然后保存4.最后保存。4.关键性弹性域下面讲解的是核算科目账户对应的键弹性域的创建方法4.1创建三个item项,设置相应属性CODE_COMBINATION:显示项(称为账户项),字段长度设置2000,显示核算科目的数字组合。 LOV为ENABLE_LIST_LAMP, 验证为NOCOMBINATION_DESC:显示项,字段长度设置2000,显示核算科目的中文描述组合GL_CCID:数据库表项,存储的是核算科目对应的ID4.2为账户项添加两个触发器 WHEN-NEW-ITEM-INSTANCE : 触发器执行层次设置为Before WHEN-VALIDATE

9、-ITEM为两个触发器添加代码: fnd_flex.event(4.3为这三个item所在的block块添加触发器 PRE-QUERY POST-QUERY PRE-INSERT PRE-UPDATE WHEN-VALIDATE-RECORD触发器代码:fnd_flex.event(PRE-INSERT4.4在pre-form触发器获取账户结构IDselect b.CHART_OF_ACCOUNTS_IDfrom gl_sets_of_books bwhere b.SET_OF_BOOKS_ID = fnd_profile.value(GL_SET_OF_BKS_ID)4.5 初始化键弹性域f

10、nd_key_flex.define(block =DETAIL, field =CODE_COMBINATION appl_short_name =SQLGL,-注册的应用简称code =GL#,-弹性域的注册代码id =GL_CCIDdescription =COMBINATION_DESCnum =:parameter.CHARTS_ACCOUNT_ID-4.4得到的账户结构ID4.6遇到的奇葩问题1).建好弹性域以后,如果我们为账户项赋了值以后,会自动获取数据库表项的值(GL_CCID),如果你有自己的函数来为数据库表项赋值(在系统自动获取之前),那就会被自动获取的值覆盖,关键是这个自

11、动获取的值还有可能是错误的,所以在PRE-INSERT触发器之前,重新赋值即可。4.单选框和复选框Value when Checked:Y Value when Unchecked:N Check Box Mapping of Other Values:Unchecked 因为复选框除了选中,被选中外,还有一个null值状态,所以要设置null状态下的值是多少。获得复选框的值:块名.复选框名 Y or N 单选框:是一个单选组,组里有单选按钮 单选组:子类-Radio Group 单选按钮:子类-Radio ButtonRadio Button Value这个属性必须有值5.手电筒窗口查询 1

12、.打开一个模板APPSTAND,将Object Groups下的QUERY_FIND对象拖到自己的form中,点击copy。将在block,canvases,windows下生成对应名称为QUERY_FIND的对象。 2. 将new 和find按钮,QUERY_FIND数据块下的key-nxtblock代码修改 New:新建的数据块名称 Find:查询的数据块名称 key-nxtblock:查询数据块的名称 3.设置query_find查询块的属性为主界面块,这样关闭query_find的时候,就会显示主界面块。 4.在主界面块内创建query_find触发器,名称不能修改,添加如下代码: A

13、pp_find.query_find(main_win,query_find_win,query_find_block);参数1:main_win查询窗口显示在哪个窗口上参数2:query_find_win -查询窗口界面对应的窗口参数3:query_find_block 查询窗口对应的块名称 5.在主界面块中的pre-query内添加查询代码 Copy ,app_find.query_range等 6.主界面块的when-new-record-instace触发器Execution Hierarchy 设置为After在其他窗口上调用出手电筒若该窗口有两个块。则在两个块上建立query_fi

14、nd触发器,代码为app_find.query_find6.菜单栏通过这种方法来设置菜单的名称(when-new-form-instance)fnd_message.set_name(SQLSZASZA_PA_010_BUDGET_CHECK)/*;消息内容:预算检查(&B)*/app_special.instantiate(SPECIAL1 fnd_message.get);app_special.disable(-使菜单灰显(失效)app_special.enable(-启用菜单7.主从块7.启用功能fnd_function.execute(function_name INVARCHAR2

15、, open_flag INVARCHAR2DEFAULTY session_flag INVARCHAR2DEFAULTSESSION other_params INVARCHAR2DEFAULTNULL, activate INVARCHAR2DEFAULTACTIVATE browser_target INVARCHAR2DEFAULTNULL);关于详细介绍请查看8.行指示器打开记录1).更改行指示器的子类,如图2.在Item触发器when-item-instance内CURRENT_RECORD_INDICATOR名称改成DRILLDOWN_RECORD_INDICATOR三.For

16、m开发中常用的技巧1.关闭窗口如何正确的关闭非主窗口(A是主窗口块,B是非主窗口块)在APP_CUSTOM.close_window这个过程内,if语句内注册window的关闭事件,代码为clear_block;go_item(A.Item_name); 第二种方法是:设置B的previous navigate block为A,建议使用在form触发器WHEN-WINDOW-RESIZED中的代码作用:folder能否随着窗口大小变化而变化。2.lov查找为item(lov)赋初值,初值在lov中存在多个。 在这中情况下,当你做其他操作时,lov会自动弹出让你选择某一个值。如果lov中数据过多

17、,需要先在查找中先输入字符,然后在匹配查找的方法: 不显示lov项可以设置显示项的宽度为0即可3.得到dml语句错误信息在on-insert触发器内,加入如下代码:exception when others then fnd_message.debug(sqlerrm);可以得到触发器的具体信息。4.clear_block 函数 一般在form的插入或更新模式下,clear_blcok会引发是否保存当前内容的系统提示,如果不希望提示,可以使用clear_block(NO_VALIDATE)5.查询函数的使用app_query.append( block_name,sql)block_name

18、-字符串sql -字符串,一条查询语句 app_find.query_range( qf_block_name.item_name1,qf_block_name2,block_item_name)参数qf_block_name.item_name1,qf_block_name2:因为该函数适用于范围查找,所以参数1表示范围开始,参数2表示范围结束block_item_name 数据块对应的item项 Copy(qf_item,block_item)类似于第二种,不是范围查找,针对某一个数据块 do_key使用如下代码,不直接调用execute_query。parameter.g_query_f

19、ind :TRUE do_key(execute_query :app_query.reset(TRACK6.设置头块和行块的增删改属性尽量不设置 insert_allowed 和update-allowed属性,insert属性一般只设置行块,头块都是可以新增的,update属性通过设置item的能否输入来实现。当查询后重新在when-new-block-instance调用一下刷新按钮以及块状态的过程。一般都会在过程中先把块的delete_allowed和insert_allowed设置为NO,然后再根据逻辑去该状态。这样就不会出错。示例代码:PROCEDURE set_repl_stat

20、us IS BEGIN sza_set_block_property(p_block_name = REPL_HEADERS p_delete_flag =NREPL_LINES p_insert_flag = IF :repl_headers.status_code IN (1NEW ELSIF :repl_headers.status_code = 4REJECT END IF; app_standard.synchronize; END set_repl_status;7.设置窗口的标题在when-new-form-instance设置app_window.set_title(RETIR

21、E_PLAN, :PARAMETER.ORG_CODE);8.跳转块或者查询块的正确方法(system.message_level)在ebs form中,消息是有等级的,为了clear_block,do_key()等时,屏蔽一些小错误,将等级下调至10. if event = WHEN-BUTTON-PRESSED then -在ebs form中 l_message_level := :system.message_level; :system.message_level := 10; go_block(approve_action clear_block;do_key(= l_messag

22、e_level; end if;9. 分段排序实现:晚于当前系统时间的item排在前面,升序。早于当前系统时间的item排在后面,升序使用union的原因: Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;Union All:对两个结果集进行并集操作,包括重复行,不进行排序;10.编译刚定义好的消息 刚定义好的消息要通过编译才能显示详细说明,不然只会显示简码。编译消息 - 应用开发员职责-其他 -请求 -运行复制按钮,选择生成消息行,(如果自己选择,则需要输入参数信息)11.提示:FND_MESSAGEQuestion的使用:, SZA_EAM_DRAW_RETUR

23、N_SAVE_TIP/用于显示在选择框的内容提示(set_string也可以)l_question_rt := fnd_message.question(YESNOCANCEL 1, 3,question if l_question_rt 1 then raise form_trigger_failure;定义变量接受返回值即可l_question_rt为number类型,根据返回值执行逻辑。例子:第二种使用方法: fnd_message.set_name(SZA_EAM_TXN_CANCEL_LINSPECIAL5, fnd_message.get);使用fnd_message.get取出栈内的消息12. 提示:set_alert_property使用set_alert_property来设置提示的信息,可以用字符串连接来输出信息,比FND_MESSAGE方便13.屏蔽错误如果碰到无法解决的错误,但是错误对程序并不影响。在ON-ERROR触发器中,用一下代码替代app_standard.event(ON-ERROR IF ERROR_CODE = 41016 THEN NULL; ELSE app_standard.event( END;14.关于list的一些函数clear_listadd_list_element配合使用在pro

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1