admin 管理员组

文章数量: 1184232


2024年12月27日发(作者:什么叫做数据库管理系统)

EBS 开发

Forms Builder 操作DEMO

撰写人:

创建日期:

王川

2012-9-8

最后更改: 2012-9-8

文控编号:

版本号:

审批人:

1.0

文档控制

更改记录

日期

作者

版本

更改参考

审阅

姓名

职位

分发

拷贝号

名字

区域

1

2

3

4

第 2 页 共 61页

目录

文档控制 ................................................................................................................................... 2

创建基础数据 ........................................................................................................................... 4

创建FORM ............................................................................................................................... 8

初始化FORM属性.................................................................................................................. 18

构建画布内容 ......................................................................................................................... 20

编辑LOV弹性域 ..................................................................................................................... 29

列表添加LOV弹性域 ............................................................................................................. 39

选择必录项 ............................................................................................................................. 40

新建参数 ................................................................................................................................. 41

程序单元 ................................................................................................................................. 42

新增打印报表的数据库程序包 ............................................................................................. 45

添加按钮的触发器 ................................................................................................................. 46

新增触发器 ............................................................................................................................. 49

部署FORM ............................................................................................................................. 51

测试FORM ............................................................................................................................. 58

第 3 页 共 61页

创建基础数据

A、 新建中间表,名称为CUX_KEIGOJOE_TEMP,以下为创建语句。

CREATE TABLE "CUX_KEIGOJOE_TEMP"

(

"LINE_ID" NUMBER NOT NULL ENABLE, ---主键

"ITEM_ID" NUMBER, ---零件编码ID

"ORG_ID" NUMBER, ---组织ID

"SUBINVENTORY_CODE" VARCHAR2(100 BYTE), ---子库存编码

"VENDOR_ID" NUMBER, ---供应商ID

"MEMO" VARCHAR2(200 BYTE), ---备注

"CREATED_BY" NUMBER, ---创建者

"CREATION_DATE" DATE, ---创建日期

"LAST_UPDATED_BY" NUMBER, ---最后修改者

"LAST_UPDATE_DATE" DATE, ---最后修改日期

"LAST_UPDATE_LOGIN" NUMBER, ---最后修改登录ID

"AttriBute1" VARCHAR2(240 BYTE), ---以下为备用字段

"AttriBute2" VARCHAR2(240 BYTE),

"AttriBute3" VARCHAR2(240 BYTE),

"AttriBute4" VARCHAR2(240 BYTE),

"AttriBute5" VARCHAR2(240 BYTE),

"AttriBute6" VARCHAR2(240 BYTE),

"AttriBute7" VARCHAR2(240 BYTE),

"AttriBute8" VARCHAR2(240 BYTE),

"AttriBute9" VARCHAR2(240 BYTE),

"AttriBute10" VARCHAR2(240 BYTE),

CONSTRAINT "CUX_KEIGOJOE_TEMP_PK" PRIMARY KEY ("LINE_ID") USING

INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

TABLESPACE "APPS_TS_TX_DATA" ENABLE

)

SEGMENT CREATION DEFERRED PCTFREE 10 PCTUSED 40 INITRANS 1

MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "APPS_TS_TX_DATA" ;

B、 将建表语句拷贝到sqldeveloper执行,结果如下:

第 4 页 共 61页

C、 新建序列,作用是给表CUX_KEIGOJOE_TEMP的字段LINE_ID进行赋值。

CREATE SEQUENCE "CUX_KEIGOJOE_TEMP_S"

MINVALUE 1

MAXVALUE 9999999999999

INCREMENT BY 1

START WITH 6

NOCACHE NOORDER NOCYCLE ;

D、 将新建序列语句拷贝到sqldeveloper执行,结果如下:

第 5 页 共 61页

E、 新建视图CUX_KEIGOJOE_TEMP_V,语句如下:

CREATE OR REPLACE FORCE VIEW "CUX_KEIGOJOE_TEMP_V"

AS

SELECT

row_id,

ory_item_id,

t1,

ption item_des,

y_unit_of_measure,

zation_id,

ary_inventory_name,

ption SUB_DES,

_ID,

T1 vendor_code,

第 6 页 共 61页

_NAME,

_ID,

D_BY,

ON_DATE,

_UPDATED_BY,

_UPDATE_DATE,

_UPDATE_LOGIN,

FROM mtl_system_items_b msib,mtl_secondary_inventories

msi,CUX_KEIGOJOE_TEMP cwt,po_vendors pv

WHERE zation_id = zation_id

AND _ID = zation_id

AND _ID = _ID;

F、 将新建视图语句拷贝到sqldeveloper执行,结果如下:

G、 以上数据准备工作结束。

第 7 页 共 61页

创建FORM

A、 打开Forms Builder,首先文件》关闭。

B、 文件》连接,创建与EBS数据库的连接。

第 8 页 共 61页

*如果此时报错,需要查看Forms Builder安装目录

$DevSuiteHome_是否有加入对数据源的描述。

EBS_TEST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.196)(PORT = 1521))

)

(CONNECT_DATA =

(SID = test)

(SERVER = DEDICATED)

)

)

C、 文件》打开从服务器上下载的FORM文件。

第 9 页 共 61页

D、 文件》另存,名称为CUX_KEIGOJOE_,保存。

E、 创建数据块:在对象导航器中,选择数据块,点击绿色”+”号。使用数据块向导创建新

的数据块。

选择“使用数据块向导”,点击“确定”。

点击“下一步”。

第 10 页 共 61页

选择“表或视图”,点击“下一步”。

在“表或视图”文本框中填入新建的视图名称“CUX_KEIGOJOE_TEMP_V”,然后点

击“刷新”按钮。

第 11 页 共 61页

点击“将所有项都移动到目标位置”按钮。

点击“下一步”按钮。

第 12 页 共 61页

选择“仅创建数据块”,点击完成。

此时对象导航器中的数据块树中应该出现刚才完成的数据块

第 13 页 共 61页

CUX_KEIGOJOE_TEMP_V。

选择的字段出现在“项”中。

F、 新建画布:“对象导航器”中选择“画布”,点击绿色+。

第 14 页 共 61页

更改画布名称:CV_CUX_KEIGOJOE_TEMP

G、 新建窗口:“对象导航器”中选择窗口,点击绿色+

第 15 页 共 61页

更改名称为WIN_CUX_KEIGOJOE_TEMP

第 16 页 共 61页

H、 点击工具栏上的“保存”按钮,至此新建FORM完成。

第 17 页 共 61页

初始化FORM属性

A、 更改窗口属性:选择新建的窗口WIN_CUX_KEIGOJOE_TEMP,修改其属性(1、鼠标

右键单击窗口,选择列表中的“属性选项板”。2、直接双击窗口的图标)。

点击“子类信息”,选择“属性类”中的“WINDOW”,点击“确定”。

图标会出现变化。

B、 更改画布属性:选择新建的画布CV_CUX_KEIGOJOE_TEMP,在“属性选项板”的

“子类信息”中选择“CANVAS”,保存。

第 18 页 共 61页

C、 修改数据块属性:选择新建的数据块CUX_KEIGOJOE_TEMP_V,在“属性选项板”的

“子类信息”中选择“BLOCK”,保存。

D、 修改表单的属性:选择表单TEMPLATE,在“属性选项板”的名称中填入

“CUX_KEIGOJOE_TEMP”。

E、 保存后,初始化属性完成。

第 19 页 共 61页

构建画布内容

A、 选择画布CV_CUX_KEIGOJOE_TEMP,右键选择“布局编辑器”。

B、 新建一个“框架”,命名为“零件供应商查询”。

第 20 页 共 61页

C、 手动创建新的数据块,命名为INPUTBLOCK。

D、 在新建的数据块INPUTBLOCK内,新建项:PARTID、PARTNAME、SUPNO、

SUPID、PARTNO、BUTN_PRINT、BUTN_FIND、ZIKUCUN。

* PARTID与SUPID是查询条件中的主键,不需要显示到画布上。

E、 修改新建项的属性。

修改PARTID 、SUPID的数据类型为“Number”。

第 21 页 共 61页

修改PARTNAME、SUPNO、PARTNO、ZIKUCUN的子类信息为“TEXT_ITEM”。

修改BUTN_PRINT、BUTN_FIND的子类信息为“BUTTON”。

修改数据块INPUTBLOCK的子类信息为“BLOCK”.

第 22 页 共 61页

修改PARTNAME、SUPNO、PARTNO、BUTN_PRINT、BUTN_FIND、ZIKUCUN的

“物理的”》“画布”为CV_CUX_KEIGOJOE_TEMP。

F、 选择画布CV_CUX_KEIGOJOE_TEMP,右键选择“布局编辑器”,选择新增的框架右

键选择“属性选项板”,选择“FRAME_RECT”。

G、 如下两图所示,将项放到指定位置。

第 23 页 共 61页

用鼠标将各项拖拉到以下位置。

布局编辑器上选择项PARTNO,打开其属性,更改“提示”为“物料编码”。

项PARTNAME,更改“提示”为“物料名称”。

项SUPNO,更改“提示”为“供应商编码”。

项ZIKUCUN,更改“提示”为“子库存”。

项PARTNO,更改“提示”为“物料编码”。

项BUTN_FIND,更改“标签”为“查询”。

第 24 页 共 61页

项BUTN_PRINT,更改“标签”为“打印报表”。

耐心调整界面如下图所示。

*可以使用

H、 在画布CV_CUX_KEIGOJOE_TEMP新增列表。

做位置的调整。

按顺序选择项:SEGMENT1、ITEM_DES、PRIMARY_UNIT_OF_MEASURE、

SECONDARY_INVENTORY_NAME、SUB_DES、VENDOR_CODE、

VENDOR_NAME、MEMO。更改属性中的画布为“CV_CUX_KEIGOJOE_TEMP”。子

类信息为“TEXT_ITEM”。

第 25 页 共 61页

画布如下。

更改SEGMENT1属性中的“提示”为“物料编码”。

更改ITEM_DES属性中的“提示”为“物料名称”。

更改PRIMARY_UNIT_OF_MEASURE属性中的“提示”为“单位”。

更改SECONDARY_INVENTORY_NAME属性中的“提示”为“子库存”。

更改SUB_DES属性中的“提示”为“子库存说明”。

更改VENDOR_CODE属性中的“提示”为“供应商编码”。

更改VENDOR_NAME属性中的“提示”为“供应商名称”。

更改MEMO属性中的“提示”为“备注”。

第 26 页 共 61页

耐心调整为下图所示。

选择数据块CUX_KEIGOJOE_TEMP_V,将属性中的“显示的记录数”更改为20。

第 27 页 共 61页

效果如下。

I、 添加一个滚动条。

选择数据块CUX_KEIGOJOE_TEMP_V,打开属性,在“滚动条”》“显示滚动条”处

选择“是”,“带滚动条画布”选择“CV_CUX_KEIGOJOE_TEMP”。

调整滚动条位置如下。

第 28 页 共 61页

编辑LOV弹性域

A、 选择LOV,点击增加按钮,一共要增加以下5个LOV。

LOV_SUP_INSERT

LOV_KUFANG_INERT

LOV_SUP

LOV_KUFANG

LOV_PART_INFO

LOV_PARTNO_INSERT

首先创建第一个LOV_SUP_INSERT。

点击新增后,选择“使用LOV向导”,点击确定。

选择“基于查询的新记录组”。下一步。

第 29 页 共 61页

在SQL查询语句中输入,下一步。

select _ID, T1 vendor_code, _NAME

from po_vendors pv

*建议使用“检查语法”,事先确认语法结构是否存在问题。

在LOV中需要包含哪些列中,选择全部。

第 30 页 共 61页

*此处是确认在LOV弹性域中需要显示的字段。

在列显示中设置宽度和绑定返回的值,首先需要修改宽度,一般1-2为宜,然后下一

步。

*对于需要返回到LOV弹性域的值,但是不希望用户在界面上可以看到(一般来说是

表的主键ID,因为UPDATE和DELETE都需要主键ID,所以需要返回以便FORM可

以捕捉与调用),可以吧宽度设置为0。

标题设置为“LOV_SUP_INSERT”,宽度和高度都为“3333”,然后下一步。

第 31 页 共 61页

高级项默认即可,下一步到分配项,即LOV弹性域返回到FORM上的哪一项,需要在

这里设置,我们需要将供应商的编码返回到FORM“零件供应商查询”的项“供应商编

码”内,所以此处设置如下,然后下一步点击完成。

在LOV中增加了一个LOV项“LOV120”,名称是系统默认的,所以需要修改属性的

名称为“LOV_SUP_INSERT”,同时将子类信息更改为“LOV”。

第 32 页 共 61页

第一个LOV添加完成。

从第二个到第五个LOV的作法与第一个大致相同。区别如下:

LOV_KUFANG_INERT:

select ary_inventory_name, ption

from mtl_secondary_inventories msi

where zation_id = :_ID

第 33 页 共 61页

LOV_SUP:

select _ID, T1 vendor_code, _NAME

from po_vendors pv

第 34 页 共 61页

LOV_KUFANG

select ary_inventory_name, ption

from mtl_secondary_inventories msi

where zation_id = :_ID

第 35 页 共 61页

LOV_PART_INFO

select ory_item_id,

t1,

ption,

y_unit_of_measure

from mtl_system_items_b msib

第 36 页 共 61页

where zation_id = :_ID

LOV_PARTNO_INSERT

select ory_item_id,

t1,

ption,

y_unit_of_measure

from mtl_system_items_b msib

where zation_id = :_ID

第 37 页 共 61页

B、 自此,弹性域LOV创建完成。点击保存。

第 38 页 共 61页

列表添加LOV弹性域

A、 选择数据块CUX_KEIGOJOE_TEMP_V,为以下项:SEGMENT1、

SECONDARY_INVENTORY_NAME、VENDOR_CODE分别添加“值列表LOV”属

性。

B、 SEGMENT1属性“值列表LOV”更改为“LOV_PARTNO_INSERT”。

C、 SECONDARY_INVENTORY_NAME属性“值列表LOV”

“LOV_KUFANG_INERT”。

D、 VENDOR_CODE属性“值列表LOV”更改为“LOV_SUP_INSERT”。

E、 保存。

第 39 页 共 61页

更改为

选择必录项

A、 在数据块CUX_KEIGOJOE_TEMP_V中选择SEGMENT1、

SECONDARY_INVENTORY_NAME、VENDOR_CODE。

B、 修改其属性“数据”》“必需”为“是”。

第 40 页 共 61页

新建参数

A、 实现对系统默认参数的调用。

B、 选择参数,点击新增按钮,需要新增4个系统默认参数。

ORG_ID

ORG_CODE

ORG_NAME

CHART_OF_ACCOUNTS_ID

第 41 页 共 61页

程序单元

A、 选择程序单元,点击新增,选择“程序包规格”,

名称为“APP_CUX_KEIGOJOE_TEMP”,点击确定。

B、 在PL/SQL编辑其中做如下添加,然后保存。

PROCEDURE Insert_row;

PROCEDURE Update_row;

PROCEDURE DELETE_ROW;

C、 继续新增一个程序包主体,名称为“APP_CUX_KEIGOJOE_TEMP”,点击确定。

第 42 页 共 61页

D、 在PL/SQL编辑器中写入对象中的以下内容。

 实现对表CUX_KEIGOJOE_TEMP的增删改操作。

E、 修改程序单元app_custom,打开其PL/SQL编辑器,修改内容。

将if (wnd = '') then修改为if (wnd = 'WIN_CUX_KEIGOJOE_TEMP')

then

第 43 页 共 61页

第 44 页 共 61页

新增打印报表的数据库程序包

A、 在数据库上新建程序包,包名为CUX_KEIGOJOE_PRINT_TEMP_PKG,添加以下内

容。

PROCEDURE print_report(errbuf OUT VARCHAR2,

retcode OUT VARCHAR2,

p_PARTID in number,

p_SUPID in number,

p_ZIKUCUN in number

);

procedure print_header;

B、 在该程序包上创建一个主体,添加以下内容。

C、 编译程序包。

第 45 页 共 61页

添加按钮的触发器

A、 FORM上的按钮“查询”添加触发器。

选择数据块“INPUTBLOCK”的项“BUTN_FIND”,然后选择触发器,新增一个触发

器“WHEN-BUTTON-PRESSED”。

在PL/SQL编辑器中输入以下内容

go_block('CUX_KEIGOJOE_TEMP_V');

execute_query;

选择数据块CUX_WCH_TEMP_V,编辑属性“WHERE子句”。

SEGMENT1 = nvl(:,SEGMENT1) and ITEM_DES =

nvl(:ME,ITEM_DES) and VENDOR_CODE =

nvl(:,VENDOR_CODE) and SECONDARY_INVENTORY_NAME

= nvl(:N,SECONDARY_INVENTORY_NAME)

第 46 页 共 61页

继续编辑“ORDER BY 子句”。

SEGMENT1

保存。

B、 在FORM的按钮“打印报表”添加触发器。

选择项“BUTN_PRINT”,选择触发器,点击新增选择触发器“WHEN-BUTTON-

PRESSED”。

在打开的PL/SQL编辑器中新增以下内容。

第 47 页 共 61页

 FND__REQUEST的参数必须满足100的数量,不足时用 ’’ 来满

足。中间用 , 号隔开。

保存。

第 48 页 共 61页

新增触发器

A、 DEMO需要演示数据的新增操作,需要有触发器来调用包实现FORM新增记录的操

作。

B、 选择数据项CUX_KEIGOJOE_TEMP_V,选择触发器,点击新增,选择PRE-INSERT。

C、 在打开的PL/SQL编辑器内填写如下内容。

fnd__who; 表示当前事件发生时可以获取用户信息。

D、 新增触发器:PRE-UPDATE

第 49 页 共 61页

E、 新增触发器:ON-INSERT 此触发器表示需要调用的程序包及函数。

APP_CUX_KEIGOJOE__row;

F、 新增触发器:ON-DELETE

APP_CUX_KEIGOJOE__ROW;

G、 新增触发器:ON-UPDATE

APP_CUX_KEIGOJOE__row;

H、 新增触发器:ON-LOCK DEMO不演示锁表记录的操作。

NULL;

第 50 页 共 61页

部署FORM

A、 修改表单CUX_KEIGOJOE_TEMP的属性。

属性:第一个导航数据块更改为“INPUTBLOCK”。

*保证FORM打开时,光标能够固定在该数据块上。

B、 修改画布CV_CUX_KEIGOJOE_TEMP的属性。

属性:“物理的》窗口”更改为“WIN_CUX_KEIGOJOE_TEMP”。

C、 修改窗口WIN_CUX_KEIGOJOE_TEMP的属性。

属性:标题更改为“CUX_KEIGOJOE_TEMP”。

属性:主画布更改为“CV_CUX_KEIGOJOE_TEMP”。

第 51 页 共 61页

D、 选择表单》触发器》PRE-FORM,打开其PL/SQL编辑器,进行修改。

FND__INFO('$Revision: 120.0 $', 'Template Form', 'FND',

'$Date: 2005/05/06 23:25 $', '$Author: appldev $');

app_('PRE-FORM');

app__window_position('BLOCKNAME', 'FIRST_WINDOW');

-------------------------更改为-------------------------------------------------------------------------

FND__INFO('$Revision: 120.0 $', 'CUX_KEIGOJOE_TEMP',

'CALM',

'$Date: 2005/05/06 23:25 $', '$Author: appldev $');

app_('PRE-FORM');

app__window_position('WIN_CUX_KEIGOJOE_TEMP', 'FIRST_WINDOW');

fnd__org;

E、 编译FORM。

点击工具栏上的

,编译FORM。

F、 通过WINSCP将文件CUX_KEIGOJOE_上传到EBS的服务器目录.

服务器目录:/u01/test/apptest/apps/apps_st/appl/calm/12.0.0/forms/ZHS/

G、 SSH或TELNET方式以APPTEST用户登录服务器,服务器端编译文件FORM文件。

编译完成。

H、 应用开发员身份的用户登录EBS,注册程序表单。

应用产品》表单

第 52 页 共 61页

按下图方式输入内容。

保存。

应用产品》功能

第 53 页 共 61页

按下图方式输入内容。

说明:

表单:

保存。

应用产品》菜单

按下图方式输入内容。

第 54 页 共 61页

保存。

I、 注册并发请求。* 打印报表。

并发》可执行

按以下内容填写,应该填写数据库程序包的名称

CUX_KEIGOJOE_PRINT_TEMP_PKG。

第 55 页 共 61页

保存。

并发》程序

按下图所示进行填写。

第 56 页 共 61页

保存。

J、 至此注册完成。

第 57 页 共 61页

测试FORM

A、 库存管理员身份登录EBS系统。

B、 铃木客户化程序》测试菜单》CUX_KEIGOJOE_TEMP,打开FORM。

由于在触发器PRE-FORM中添加内容fnd__org;需要先选择组织。

C、 编写的FORM打开。

第 58 页 共 61页

D、 测试新增。

打开弹性域

输入内容后,保存。

系统提示保存成功。

第 59 页 共 61页

查看数据库的后台表CUX_KEIGOJOE_TEMP。INSERT操作是成功的。

E、 测试查询。

查询成功。

F、 测试打印报表。

点击“打印报表”按钮

查看请求。

第 60 页 共 61页

网页上查看报表

第 61 页 共 61页


本文标签: 选择 属性 数据 新增 点击