使用Form Builder创建Form具体步骤
2014-06-26 15:59
375 查看
使用Oracle Form Builder创建Form具体步骤
(Data Source为Table)
说明:当Block使用的Data Source为Table时,Form会自动Insert,Update,Delete,Lock。若要显示non-database Item,需在POST-QUERY Trigger 里手动写代码来为non-database Item取值。
步驟一:分析需求设计Table架构
1). Table需指定一Unique ID,可为其创建Unique Index,在Form里通过Sequence 为其赋值。
2). Table和Sequence 创建在指定客制Owner下 (如CUX) 。
3). 命名规则:XX+模组名称开头,Sequence名在Table名后加“_S”
如Table名:CUX.XXPO_PO_HEADERS
Sequence名:CUX.XXPO_PO_LINES_S
4). Table要有以下5个栏位(参考系统标准表):
CREATED_BY
CREATION_DATE
LAST_UPDATED_BY
LAST_UPDATE_DATE
LAST_UPDATE_LOGIN
5). 在APPS下为客制Owner (如CUX) 的Table和Sequence创建Synonym (同义词) 。
步驟二:套用Form模板TEMPLATE.fmb
1). 将Template File开启并并另存新档 (可放在不同目录) 。
2). 将模板提供的空Block、Canvas和Window删除 (名称为BLOCKNAME和DETAILBLOCK) 。
步驟三:建立Block、Window、Canvas
、LOV
1). 新建Data Block (建议先手动新增,重命名后再使用Data Block Wizard创建)
可与Table名相同,如名称为:XXPO_PO_HEADERS
2). 新建Window、Canvas (建议先手动新增,重命名后再使用Layout Wizard创建)
建议Window和Canvas的名称与对应Block一样。
3). 将Canvas对应的视窗指定到Canvas的Window属性。
4). 将Window的Primary Canvas属性指定对应的Content Canvas。
5). 使用Date Block
Wizard创建Data Block
6). 使用Layout
Wizard创建Window、Canvas
7). 新建LOV (建议先手动新增,重命名后再使用LOV Wizard创建)
8). 将所有物件套用Subclass
(Item: 要显示在Canvas上的Item套用即可)。
9). 建立INDICATOR栏位,套用Subclass:
CURRENT_RECORD_INDICATOR。
10). 设置Window的Title属性,用于显示视窗左上角的标题。
步驟四:修改必要属性及代码设置
1). 设置Form的First Navigation Data Block属性为第一个要开启的Data Block
如:XXPO_PO_HEADERS
2). 在Form Trigger:PRE-FORM 修改
app_window.set_window_position('<First_Window>',
'FIRST_WINDOW');
如app_window.set_window_position('XXPO_PO_HEADERS', 'FIRST_WINDOW');
3). 在Program Unit:APP_CUSTOM 修改Close_Window
if (wnd = '<First_Window>') then
app_window.close_first_window; …
如:if (wnd = ' XXPO_PO_HEADERS ') then …
步驟五:在系统打开Form 时让User选择Organization
1). 先決條件:先建立四個
Parameter:
CHART_OF_ACCOUNTS_ID
(NUMBER)
ORG_NAME
(CHAR 240)
ORG_CODE
(CHAR 30)
ORG_ID
(NUMBER)
2). 在Form的Trigger:PRE-FORM加入
Procedure:FND_ORG.CHOOSE_ORG;
3). 修改Window的Title属性为进入该视窗时左上角显示的标题:
在Block的WHEN-NEW-BLOCK-INSTANCE
Trigger 加入
如:app_window.set_title('XXPO_PO_HEADERS', :parameter.org_code);
4). 给ORGANIZATION_ID赋值:
在Block的Trigger:PRE-INSERT 写入
如::XXPO_PO_HEADERS.ORGANIZATION_ID
:= :parameter.org_id;
步驟六:使用Sequence为Table的Unique
ID赋值
1). 在Block的Trigger:PRE-INSERT 写入以下程序
如:select XXPO_PO_HEADERS_S.NEXTVAL
into :XXPO_PO_HEADERS.XXPO_HEADER_ID
from dual;
步驟七:给CREATED_BY 、LAST_UPDATED_BY等栏位赋值
方式有二:分前端、後端。
1). 前端:
在PRE-INSERT、PRE-UPDATE這兩個Block Trigger中,寫入:
Fnd_Standard.Set_Who;
即可。
2). 後端:
Fnd_Global.User_ID 即為取得建立者 or 異動者。
步驟八:日期型栏位使用日历
1). 將Data Field的List of Values屬性值設定為ENABLE_LIST_LAMP。
2). 將Data Field的Validate from List屬性值設定為No。
3). 在Data Field的KEY-LISTVAL Item Trigger(Override)中,寫入Calendar.show;
(Data Source为Table)
说明:当Block使用的Data Source为Table时,Form会自动Insert,Update,Delete,Lock。若要显示non-database Item,需在POST-QUERY Trigger 里手动写代码来为non-database Item取值。
步驟一:分析需求设计Table架构
1). Table需指定一Unique ID,可为其创建Unique Index,在Form里通过Sequence 为其赋值。
2). Table和Sequence 创建在指定客制Owner下 (如CUX) 。
3). 命名规则:XX+模组名称开头,Sequence名在Table名后加“_S”
如Table名:CUX.XXPO_PO_HEADERS
Sequence名:CUX.XXPO_PO_LINES_S
4). Table要有以下5个栏位(参考系统标准表):
CREATED_BY
CREATION_DATE
LAST_UPDATED_BY
LAST_UPDATE_DATE
LAST_UPDATE_LOGIN
5). 在APPS下为客制Owner (如CUX) 的Table和Sequence创建Synonym (同义词) 。
步驟二:套用Form模板TEMPLATE.fmb
1). 将Template File开启并并另存新档 (可放在不同目录) 。
2). 将模板提供的空Block、Canvas和Window删除 (名称为BLOCKNAME和DETAILBLOCK) 。
步驟三:建立Block、Window、Canvas
、LOV
1). 新建Data Block (建议先手动新增,重命名后再使用Data Block Wizard创建)
可与Table名相同,如名称为:XXPO_PO_HEADERS
2). 新建Window、Canvas (建议先手动新增,重命名后再使用Layout Wizard创建)
建议Window和Canvas的名称与对应Block一样。
3). 将Canvas对应的视窗指定到Canvas的Window属性。
4). 将Window的Primary Canvas属性指定对应的Content Canvas。
5). 使用Date Block
Wizard创建Data Block
6). 使用Layout
Wizard创建Window、Canvas
7). 新建LOV (建议先手动新增,重命名后再使用LOV Wizard创建)
8). 将所有物件套用Subclass
(Item: 要显示在Canvas上的Item套用即可)。
9). 建立INDICATOR栏位,套用Subclass:
CURRENT_RECORD_INDICATOR。
10). 设置Window的Title属性,用于显示视窗左上角的标题。
步驟四:修改必要属性及代码设置
1). 设置Form的First Navigation Data Block属性为第一个要开启的Data Block
如:XXPO_PO_HEADERS
2). 在Form Trigger:PRE-FORM 修改
app_window.set_window_position('<First_Window>',
'FIRST_WINDOW');
如app_window.set_window_position('XXPO_PO_HEADERS', 'FIRST_WINDOW');
3). 在Program Unit:APP_CUSTOM 修改Close_Window
if (wnd = '<First_Window>') then
app_window.close_first_window; …
如:if (wnd = ' XXPO_PO_HEADERS ') then …
步驟五:在系统打开Form 时让User选择Organization
1). 先決條件:先建立四個
Parameter:
CHART_OF_ACCOUNTS_ID
(NUMBER)
ORG_NAME
(CHAR 240)
ORG_CODE
(CHAR 30)
ORG_ID
(NUMBER)
2). 在Form的Trigger:PRE-FORM加入
Procedure:FND_ORG.CHOOSE_ORG;
3). 修改Window的Title属性为进入该视窗时左上角显示的标题:
在Block的WHEN-NEW-BLOCK-INSTANCE
Trigger 加入
如:app_window.set_title('XXPO_PO_HEADERS', :parameter.org_code);
4). 给ORGANIZATION_ID赋值:
在Block的Trigger:PRE-INSERT 写入
如::XXPO_PO_HEADERS.ORGANIZATION_ID
:= :parameter.org_id;
步驟六:使用Sequence为Table的Unique
ID赋值
1). 在Block的Trigger:PRE-INSERT 写入以下程序
如:select XXPO_PO_HEADERS_S.NEXTVAL
into :XXPO_PO_HEADERS.XXPO_HEADER_ID
from dual;
步驟七:给CREATED_BY 、LAST_UPDATED_BY等栏位赋值
方式有二:分前端、後端。
1). 前端:
在PRE-INSERT、PRE-UPDATE這兩個Block Trigger中,寫入:
Fnd_Standard.Set_Who;
即可。
2). 後端:
Fnd_Global.User_ID 即為取得建立者 or 異動者。
步驟八:日期型栏位使用日历
1). 將Data Field的List of Values屬性值設定為ENABLE_LIST_LAMP。
2). 將Data Field的Validate from List屬性值設定為No。
3). 在Data Field的KEY-LISTVAL Item Trigger(Override)中,寫入Calendar.show;
相关文章推荐
- 在EBS开发(form builder)中使用文件夹(folder)功能的步骤
- wxWidgets学习笔记(二):使用wxFormBuilder、wxWidgets和Code::Blocks创建GUI程序
- Oracle EBS Form Builder使用Java beans创建窗体
- 使用Adobe Flash Builder Burrito创建AIR For Google Android应用
- 在vs2005中创建Web Services服务,并通过客户端调用(具体的步骤)
- 使用Form创建欢迎界面
- oracle form builder创建的form在本机运行
- wxformbuilder+WxWidgets下载编译使用
- Google Map开发系列(四)——使用JavaScript创建地图步骤详解
- 如何在linux下创建oracle数据库,求高手解决,我要具体的详细步骤,谢谢!
- 创建Win32 DLL的步骤和使用
- 使用 WSPBuilder 创建List Instance WSP 包
- 使用Ext中的Grid,Form,Dialog来实现列表,创建,更新,删除,查找和分页功能
- 使用Duplication创建Auxiliary Instance的基本步骤
- 使用Ext的Grid,Form,Dialog来实现分页列表,创建,修改,删除功能
- ThinkPad 使用两种BIOS升级文件进行BIOS升级的具体步骤。
- 使用线程创建form
- E-Form++可视化组件库图形元件的创建与使用方法探讨?
- [转载]asp.net 2.0 三层架构创建步骤 添加引用具体步骤
- 基于wince.net的环境,使用pocketBuilder调用webservice所需安装环境和步骤