77范文网 - 专业文章范例文档资料分享平台

EBS Form开发总结(5)

来源:网络收集 时间:2018-11-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

属性名称 名称 画布类型 子类信息

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

2.界面

属性值 MAIN_TAB_PAGE1 堆叠 CANVAS_STACKED 0.5+固定列区域宽度

MAIN_TAB视图端口的Y轴位置+0.5 窗口宽度-1

0.25+0.25*Line块显示的记录数 窗口宽度-1

0.25+0.25*Line块显示的记录数 MAIN

Line块的滚动条放置于FIX画布,参考坐标为:(窗口宽度-0.5,Header区域Y坐标+Header区域高度+1)。

注意点:Tab页folder的固定项如果存在与page项发生重叠的部分,那么光标进入固定项的时候会把page画布隐藏,因此一定要保证fix画布上的固定项不与page画布上的项交叉。

3.FORM同名PACKAGE

TAB页folder的form同名package头与非TAB页folder一致。 TAB页folder的form同名package体中需要以下代码:

PROCEDURE hide_main_tab(p_tab_name VARCHAR2) IS BEGIN

IF p_tab_name IN ('FOLDER_STACKED_CANVAS1', 'FOLDER_STACKED_CANVAS2',

'FOLDER_STACKED_CANVAS3') THEN hide_view(p_tab_name); END IF;

END hide_main_tab;

PROCEDURE go_tab_first_item(p_tab_name VARCHAR2) IS BEGIN

IF p_tab_name = 'FOLDER_STACKED_CANVAS1' THEN go_item('LINE_BLOCKNAME.CANVAS1_FIRST_ITEM'); ELSIF p_tab_name = 'FOLDER_STACKED_CANVAS2' THEN go_item('LINE_BLOCKNAME.CANVAS2_FIRST_ITEM'); ELSIF p_tab_name = 'FOLDER_STACKED_CANVAS3' THEN go_item('LINE_BLOCKNAME.CANVAS3_FIRST_ITEM'); END IF;

END go_tab_first_item;

PROCEDURE show_main_tab(p_tab_name VARCHAR2) IS BEGIN

IF p_tab_name IN ('FOLDER_STACKED_CANVAS1', 'FOLDER_STACKED_CANVAS2',

'FOLDER_STACKED_CANVAS3') THEN show_view(p_tab_name); END IF;

EBS Form开发总结

END show_main_tab;

PROCEDURE event_handler(event VARCHAR2) IS new_tab VARCHAR2(30) := :system.tab_new_page; prev_tab VARCHAR2(30) := :system.tab_previous_page; BEGIN

IF event = 'WHEN-NEW-FORM-INSTANCE' THEN app_folder.define_folder_block('FOLDER_NAME', 'LINE_BLOCKNAME',

'LINE_PROMPT_BLOCKNAME',

'FOLDER_STACKED_CANVAS1,FOLDER_STACKED_CANVAS2,FOLDER_STACKED_CANVAS3',

'MAIN',

'AUTOQUERY DISABLED_FUNCTION2 DISABLED_FUNCTION3', 'MAIN_TAB',

'MAIN_TAB_FIX'); app_folder.event('INSTANTIATE');

show_view('FOLDER_STACKED_CANVAS1'); ELSIF event = 'FOLDER_RETURN_ACTION' THEN

IF (:global.folder_action = 'CONFIRM-HIDE-FIELD') THEN IF :global.folder_field IN ('CANVAS1_FIRST_ITEM', 'CANVAS2_FIRST_ITEM',

'CANVAS3_FIRST_ITEM') THEN

:global.folder_action_allowed := 'FALSE'; END IF; END IF;

ELSIF event = 'WHEN-TAB-PAGE-CHANGED' THEN hide_main_tab(prev_tab); show_main_tab(new_tab); go_tab_first_item(new_tab); END IF;

END event_handler;

注意点:

1. 定义TAB页folder时,多个FOLDER_STACKED_CANVAS用英文逗号隔开,多个DISABLED_FUNCTION用空格隔开。

2. 在FOLDER_RETURN_ACTION事件中禁止隐藏每个TAB画布上的第一个项,主要是为了防止一个TAB页的项全被隐藏后该TAB页无法再出现的BUG。

DISABLED_FUNCTION常用可选参数如下:

名称 OPEN

ORDERBY NEW SAVE

AUTOQUERY DELETE SHOW HIDE MOVE WIDEN SHRINK AUTOSIZE

效果

禁止文件夹打开功能 禁止文件夹排序功能 禁止文件夹新建功能 禁止文件夹保存功能

TAB FOLDER用在Detail Block时应当禁止此功能

禁止文件夹删除功能 禁止显示隐藏ITEM 禁止隐藏ITEM 禁止移动ITEM 禁止加宽ITEM 禁止缩窄ITEM

禁止TAB画布跟随窗口大小变化

EBS Form开发总结

PROMPT

4.LINE块同名PACKAGE Package头中添加以下代码:

procedure event(p_event in varchar2);

Package体中添加以下代码:

禁止更改提示 PROCEDURE event(p_event IN VARCHAR2) IS

curr_canvas_name VARCHAR2(30) := get_item_property(name_in('SYSTEM.CURSOR_ITEM'), item_canvas);

current_tab VARCHAR2(30) := get_canvas_property('MAIN_TAB', topmost_tab_page);

tab_canvas_name VARCHAR2(30) := name_in('SYSTEM.EVENT_CANVAS'); BEGIN

IF p_event = 'WHEN-NEW-ITEM-INSTANCE' THEN

IF curr_canvas_name IN ('FOLDER_STACKED_CANVAS1', 'FOLDER_STACKED_CANVAS2',

'FOLDER_STACKED_CANVAS3') THEN IF curr_canvas_name != current_tab THEN

set_canvas_property('MAIN_TAB', topmost_tab_page, curr_canvas_name); END IF; END IF; END IF; END event;

5.FORM级触发器

与非TAB页folder相比,需要增加以下两个form级触发器:

名称

FOLDER_RETURN_ACTION

代码

Form_name.event_handler('FOLDER_RETURN_ACTION');

WHEN-TAB-PAGE-CHANGED Form_name.event_handler('WHEN-TAB-PAGE-CHANGED');

6.BLOCK级触发器

与非TAB页folder相比,需要在LINE块增加以下一个block级触发器:

名称 WHEN-NEW-ITEM-INSTANCE

代码 Line_blockname.event('WHEN-NEW-ITEM-INSTANCE'); 3.2 弹性域

1.描述性弹性域

EBS Form开发总结

Form的基表如果备有描述性弹性域字段则可在form中启用描述性弹性域。

注册表和表列

使用HAND_PLSQL_AUTOCREATE.REGIST_TABLE生成注册代码,需要填写的信息有表名、表用户名和应用简称。

复制注册代码至Command Window执行并提交。

注册描述性弹性域

在Oracle Application的以下路径注册描述性弹性域: 应用开发员?弹性域?描述性?注册

注意记下弹性域的名称,以下称DDF_NAME。

添加DF项

在启用描述性弹性域的数据块中追加一个名称为DF的ITEM,子类为

TEXT_ITEM_DESC_FLEX,画布和位置按实际情况调整。如果是在有folder功能的数据块中启用,还需要为DF项添加一个提示项。DF项的提示文字一般为“[ ]”。

添加DF项级触发器

名称

WHEN-NEW-ITEM-INSTANCE WHEN-VALIDATE-ITEM

代码

fnd_flex.event('WHEN-NEW-ITEM-INSTANCE');

fnd_flex.event('WHEN-VALIDATE-ITEM');

执行层次 之前

忽略

添加BLOCK级触发器代码

在启用描述性弹性域的数据块上添加以下触发器,如果块上已有该触发器,则在该触发器的最前面添加代码。

名称 PRE-QUERY POST-QUERY PRE-INSERT PRE-UPDATE

WHEN-VALIDATE-RECORD

FORM中定义描述性弹性域

代码 fnd_flex.event('PRE-QUERY'); fnd_flex.event('POST-QUERY'); fnd_flex.event('PRE-INSERT'); fnd_flex.event('PRE-UPDATE'); fnd_flex.event('WHEN-VALIDATE-RECORD');

EBS Form开发总结

3.3 LOV

在form同名package响应when-new-form-instance事件的程序中添加以下代码: fnd_descr_flex.define(BLOCK => 'BLOCKNAME', field => 'DF', appl_short_name => 'CUX', desc_flex_name => 'DDF_NAME'); 启用段

在Oracle Application的以下路径设置启用段: 应用开发员?弹性域?描述性?段

搜索出之前定义的弹性域,点击段进入段设置界面。定义段名,并选用后台数据库表中未被用到的列。在段设置界面点击打开,可以进入该段的详细设置,包括可用性、大小和提示。

设置完毕后要冻结该弹性域使其生效。

2.键弹性域LOV 尚待补充。

1.LOV向导

一般使用LOV向导创建或修改LOV,子类为LOV。以下黑体字为LOV向导中的选项卡名称。 查询

LOV所基于的记录组的SQL。 列

确定所需字段及顺序。 列显示

确定字段标题、宽度及返回项。设置字段宽度为0隐藏该字段。用户在使用时输入的值将对第一个显示的字段进行限制。

LOV显示

EBS Form开发总结

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库EBS Form开发总结(5)在线全文阅读。

EBS Form开发总结(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/296926.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: