ebs form开发总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.前言
这是在深航2期项目期间学习form的过程中总结出来的一些东西,但内容比较零散,不包含form开发的完整过程。
1.开发规范
1.1 命名规范
文件命名:
一般将源码放在….\SVN\05.客户化开发\05.源代码\ 目录下,文件的格式参考该目录下的代码包模板:开发编号-开发项名称文件夹,该文件夹命名如:EAM010_资产报废计划EAM代表模块,010和资产报废计划是由开发文档给出,不需要自己取编号。
路径:05.源代码\代码包模板:开发编号-开发项名称\SZAXXXXX\code 中,SZAXXXXX 也有自己的命名规范,一般取表名称的前6个字符,即应用名+模块名,在取表名后的5-6字符作为后缀,例如:表名是SZA_EAM_RETIRE_PLAN ,则取SZAEAMREPLAN,该文件夹名称与form名称保持一致。
SVN模板目录:
Sql :注册弹性域的plsql代码块,名称与表名一致
Table :建表脚本
View :建视图脚本
Pck : 基于视图的增删改form,在hss_public_util程序包中,Table_Handle_Pkg这个过程生成的代码要在数据库中执行,并且代码保存在package文件夹下,并以.pck保存。
Form_Table_Handle这个过程是要放在form中
Form规范
1.Form的命名:例如表名SZA_INV_TST_DOC_TYPES,选取前6个字符SZAINV,加上后面字符串的5-6个字符,SZAINVTSTDOCTP.
2. 块名命名:SZA_INV_TST_DOC_TYPES选表中间字段TST_DOC
3.窗口查询的块QUERY_FIND 的名称:块名+QF,对应的FIX和STK画布名字也要保持一致,但是QUERY_FIND触发器名称不能修改。
4.在ebs上注册表单,功能,弹性域时,form表单,功能和弹性域名称:SZA INV:+中文解释,
例如:SZA INV:单据类型定义。因为这些名称都是用户在查找时给用户看的。
5. 在窗口查询中,一般用id来作为查询字段,一般在id字段建立索引,查询速度更快,所以应该有消除依赖的代码
6. LOV的显示:id字段一般不显示出来,可以设置id字段的display width为0即可。
2.常用开发组件和功能
1.无TAB的Folder功能
一般情况下,将不随横向滚动条移动的列放置在FIX画布上,变成固定列,固定列是没有拖动效果的。
画布:MAIN ,FOLDER_FIX ,FOLDER_STK
第一步:使用data block wizard创建块
第二步:ROW_ID项的子类名设置为ROW_ID。
其他需要显示在画布上的项设置子类, 另设置显示在STK画布上的属性:
第三步:将数据块中显示在STK上的项复制到PROMT块中,并设置数据块中的trigger(模
提示项的item type为display,子类为FOLDER_PROMT_MULTIROW
第四步:在when-new-form-instance初始化form。
使用app_folder.define_folder_block
如果用到了FIX画布,需要使用参数8
第五步:在画布上调整布局
设置块的Scrool Bar Canvas在fix画布上
注意:
第六步:在WHEN-WINDOW-RESIZED触发器内
if :system.event_window in ('MAIN','DOC','TXN_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的画布,注意的是最好使得这两个画布的名称和将来放在两画布上的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
hide_main_tab.txt show_main_tab.txt go_tab_first_item.txt
以下的两个过程是为了防止bug
参考(\桌面\ebs常用文档大全\FOLDER)
3.说明性弹性域
第一步:在实际开发中(暂时做过的项目中),会提供给你注册的plsql块(保存在sql 中),
执行后,就会在ebs中注册。
第二步:在数据块中创建item,取名DF,类型text item,子类TEXT_ITEM_DESC_FLEX
第三步:在DF项下,创建两个触发器
WHEN-VALIDATE-ITEM --override
代码:FND_FLEX.EVENT(‘WHEN-VALIDATE-ITEM’)
WHEN-NEW-ITEM-INSTANCE --before
代码:FND_FLEX.EVENT(‘WHEN-NEW- ITEM-INSTANCE’)
第四步:修改DF所在数据块的trigger,添加完成后初始化弹性域
添加此代码:FND_FLEX.EVENT( ‘ ..’)
使用fnd_descr_flex.define初始化弹性域
第五步:启用弹性域
1.先是查找出注册好的弹性域