EBS Form开发总结(3)

2018-11-22 18:21

KEY-CLRBLK

app_folder.event('KEY-CLRBLK');

2.7 ITEM调整

1.Header Item

增加需要的非数据库项。

ROW_ID项的子类选择ROW_ID。所有显示的项都需要设置对应的子类,以保持与EBS一致的风格。

对各项的细节,如是否可更新、项导航顺序、数据有效性、初始值、数字格式和提示文字等,做出调整。

2.Line Item

增加需要的非数据库项。

ROW_ID项的子类选择ROW_ID。所有显示的项都需要设置对应的子类,以保持与EBS一致的风格。

删除所有folder显示项的提示文字。对各项的细节,如是否可更新、项导航顺序、数据有效性、初始值和数字格式等,做出调整。 增加以下两个项:

名称

FOLDER_SWITCHER 子类

SWITCHER

CURRENT_RECORD_INDICATOR CURRENT_RECORD_INDICATO

R

画布

FOLDER的堆叠画布 MAIN

并且分别在它们的项级触发器WHEN-NEW-ITEM-INSTANCE中添加以下代码: app_folder_move_cursor('1');

3.提示块Item

从LINE块复制全部使用folder的项至提示块,子类全都选择

FOLDER_PROMPT_MULTIROW,初始值分别设置为相应的列标题。注意项序保持与LINE块一致。

EBS Form开发总结

增加以下六个项:

名称 ORDER_BY1 ORDER_BY2 ORDER_BY3

FOLDER_DUMMY FOLDER_TITLE FOLDER_OPEN

4.CONTROL块Item

子类 FOLDER_ORDERBY FOLDER_ORDERBY FOLDER_ORDERBY FOLDER_DUMMY DYNAMIC_TITLE FOLDER_OPEN 画布 FOLDER的堆叠画布 FOLDER的堆叠画布 FOLDER的堆叠画布 TOOLBAR MAIN MAIN

按照需求添加相应的控制组件,多为按钮。

按钮的子类:BUTTON。

按钮的标签:显示文本(&快捷键字母),如清除(&C)。

注意:导航到一个数据块上时,如果块上一个可导航的项都没有,将出现画面死机的BUG。

2.8 界面调整

以下仅考虑Header项皆位于Line项上方、Control项皆位于Line项下方、带folder的情况。

1.Folder堆叠画布

在画布属性中设置显示水平滚动条。

参考下面表格做出调整。

名称

提示项和ORDER_BY项 Line块的内容项 高度 宽度

视图端口高度 视图端口宽度 视图端口的X轴位置 视图端口的Y轴位置

坐标/数值 (0,0) (0,0.25)

0.25*(Line块显示的记录数+1)

窗口宽度-固定列区域宽度(无固定列时为0)-0.5

0.25*(Line块显示的记录数+1)

窗口宽度-固定列区域宽度(无固定列时为0)-0.5

0.25+固定列区域宽度

按实际情况设置(一般保持与Header区域相差0.25)

EBS Form开发总结

注意点:

1. 提示项与内容项的宽度保持一致。

2. 内容项最好与提示项在Y轴方向上紧贴,如果离得过远(大于0.1),在多行记录滚动时会出现内容项移位的bug。

2.MAIN画布

对Header项的位置做适当调整,确定Header区域坐标及高宽。 参考以下表格做出调整。

名称

画布高度 画布宽度

FOLDER_OPEN

坐标/数值 窗口高度 窗口宽度

(0.25,Header区域Y坐标+Header区域高度)

FOLDER_TITLE (0.5, Header区域Y坐标+Header区域

高度+0.05)

CURRENT_RECORD_INDICATOR (0.15, Header区域Y坐标+Header区

域高度+0.5)

Line块滚动条 (窗口宽度-0.25,Header区域Y坐标

+Header区域高度+0.5)

Control项置于Line区域与窗口下边界之间,做适当调整。

2.9 实现增删改锁

基于视图的form的增删改锁操作需要我们添加代码完成。

以下程序包代码可以通过汉得的公共程序包HAND_PLSQL_AUTOCREATE自动生成。

注意点:HAND_PLSQL_AUTOCREATE切忌小写。

首先创建以下两个程序包规格:

名称

内容

PACKAGE Header_BlockName_private IS

PROCEDURE insert_row; PROCEDURE lock_row; PROCEDURE update_row; PROCEDURE delete_row;

END Header_BlockName_private;

PACKAGE Line_BlockName_private IS

Header_BlockName_private

Line_BlockName_private

EBS Form开发总结

PROCEDURE insert_row; PROCEDURE lock_row; PROCEDURE update_row; PROCEDURE delete_row;

END Line_BlockName_private;

再创建对应的程序包主体,Header与Line相似,以下仅列出Header_BlockName_private主体代码:

PACKAGE BODY header_blockname_private IS

/*===================================== ** PROCEDURE: insert_row()

**=====================================*/ PROCEDURE insert_row IS

CURSOR row_id IS SELECT ROWID

FROM header_table_all

WHERE header_table_primary_key = :header_blockname.header_table_primary_key;

BEGIN

fnd_standard.set_who;

IF :header_blockname.header_table_primary_key IS NULL THEN SELECT header_table_all_s.nextval

INTO :header_blockname.header_table_primary_key FROM sys.dual; END IF;

INSERT INTO header_table_all (creation_date, created_by,

last_updated_by, last_update_date, last_update_login,

header_table_primary_key, header_table_col1, header_table_col2, header_table_col3, attribute_category, attribute1, attribute2, attribute3, attribute4, attribute5, attribute6, attribute7, attribute8, attribute9, attribute10, attribute11, attribute12, attribute13, attribute14, attribute15) VALUES

(:header_blockname.creation_date, :header_blockname.created_by,

:header_blockname.last_updated_by, :header_blockname.last_update_date, :header_blockname.last_update_login,

:header_blockname.header_table_primary_key, :header_blockname.header_table_col1, :header_blockname.header_table_col2, :header_blockname.header_table_col3, :header_blockname.attribute_category, :header_blockname.attribute1,

EBS Form开发总结

:header_blockname.attribute2, :header_blockname.attribute3, :header_blockname.attribute4, :header_blockname.attribute5, :header_blockname.attribute6, :header_blockname.attribute7, :header_blockname.attribute8, :header_blockname.attribute9, :header_blockname.attribute10, :header_blockname.attribute11, :header_blockname.attribute12, :header_blockname.attribute13, :header_blockname.attribute14, :header_blockname.attribute15);

OPEN row_id; FETCH row_id

INTO :header_blockname.row_id; IF (row_id%NOTFOUND) THEN CLOSE row_id;

RAISE no_data_found; END IF;

CLOSE row_id;

END insert_row;

/*===================================== ** PROCEDURE: lock_row()

**=====================================*/ PROCEDURE lock_row IS

CURSOR c_row IS SELECT *

FROM header_table_all

WHERE ROWID = :header_blockname.row_id

FOR UPDATE OF header_table_primary_key NOWAIT;

rec c_row%ROWTYPE; i NUMBER := 0; BEGIN

LOOP BEGIN

i := i + 1; OPEN c_row; FETCH c_row INTO rec;

IF (c_row%NOTFOUND) THEN CLOSE c_row;

fnd_message.set_name('FND', 'FORM_RECORD_DELETED'); fnd_message.error;

RAISE form_trigger_failure; END IF;

CLOSE c_row;

IF (((rec.creation_date = :header_blockname.creation_date) OR ((rec.creation_date IS NULL) AND

(:header_blockname.creation_date IS NULL))) AND

((rec.created_by = :header_blockname.created_by) OR ((rec.created_by IS NULL) AND

(:header_blockname.created_by IS NULL))) AND

((rec.last_updated_by = :header_blockname.last_updated_by) OR ((rec.last_updated_by IS NULL) AND

(:header_blockname.last_updated_by IS NULL))) AND

((rec.last_update_date = :header_blockname.last_update_date) OR ((rec.last_update_date IS NULL) AND

(:header_blockname.last_update_date IS NULL))) AND

((rec.last_update_login = :header_blockname.last_update_login) OR ((rec.last_update_login IS NULL) AND

(:header_blockname.last_update_login IS NULL))) AND (rec.header_table_primary_key =

EBS Form开发总结


EBS Form开发总结(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学社团活动英语作文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: