ebs form开发总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.先是查找出注册好的弹性域

相关文档
最新文档