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

EBS Form开发总结(2)

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

2.4 建立主体对象

1.窗口

删除模板自带窗口BLOCKNAME并新建窗口,主WINDOW建议起名为MAIN或MAIN_WIN,便于维护。

为主WINDOW设置窗口名称、最小化窗口名称和主画布,并把子类设置为WINDOW。

在form级触发器pre-form中添加以下代码:

app_window.set_window_position('MAIN', 'FIRST_WINDOW');

有时候自己做的form运行时跑出来的界面却不是自己做的界面,很可能就是因为没有删除BLOCKNAME对象且没有修改以上这句代码中的第一个参数。 2.画布

删除模板自带画布BLOCKNAME并新建画布,主CANVAS建议起名为MAIN,便于维护。

为主画布设置窗口,并把子类设置为CANVAS。

为实现folder功能,还至少需要一个用来放置非固定列的画布,子类选择CANVAS_STACKED。

画布的上下顺序对堆叠的效果有影响,将置于底层的画布放置在上方。 3.数据块

删除模板自带数据块BLOCKNAME。

先在数据库中创建好需要的视图,需要带有基表的ROWID,并起别名为ROW_ID。一般较少直接使用基表,这样会降低程序的灵活性。再使用数据库创建向导建立对应的数据块。

Header块及Line块的固定列放置在主画布上,Line块的非固定列放置在堆叠画布上。Line块需要有滚动条,且滚动条放置于MAIN画布上。

EBS Form开发总结

2.5 初始化参数

在Header块中找到刚创建的关系,在属性中把防止无主记录操作选成是。

手动创建一个数据块CONTROL(一般按钮放于此),属性中的数据库数据块选择否。 手动创建一个提示数据块(folder需要),属性中的数据库数据块选择否。

Header块的导航,导航器样式选择改变数据块,前一个数据块选择自身,后一个数据块选择Line块,使用户能从Header导航至Line。

Line块的导航,导航器样式选择改变记录,前一个数据块选择Header块,后一个数据块选择自身,使用户能从一行导航至下一行。

将全部块的子类设置为BLOCK。根据需要对Header块和Line块的数据库属性,包括允许查询、允许插入、允许更新和允许删除等,做出调整。

注意点:1.块名长度不可大于22。

2. 头行结构设置级联删除时,系统会自动添加一个pre-delete触发器代码。

1.库存组织参数

如果form中的操作不需要区别不同的库存组织,可以跳过此步。

增加4个参数: number型的ORG_ID; char型的ORG_CODE; char型的ORG_NAME;

number型的CHART_OF_ACCOUNTS_ID。

可以手动创建。也可以从INVSTAND.fmb的对象组中将INV_PARAMS拖到正在开发的form的对象组中,选择子类。

在form级触发器pre-form中添加以下代码: FND_ORG.CHOOSE_ORG;

用户在打开form前就需要选择库存组织,库存组织的相应信息会被保存在以上4个参数中。

EBS Form开发总结

在form级触发器when-new-form-instance中添加以下代码:

app_window.set_title('QUERY_FIND',name_in('PARAMETER.ORG_NAME')); app_window.set_title('MAIN',name_in('PARAMETER.ORG_NAME'));

使form中的窗口名称后面都带上库存组织名称,便于用户操作。例如:交货平台(中弹组织)。

在Header块级触发器when-new-block-instance中添加以下代码:

set_block_property('HEADER_BLOCKNAME',DEFAULT_WHERE,'ORGANIZATION_ID = '||:parameter.ORG_ID||' ');

From后续开发中使用ORG_ID区别不同库存组织。

2.配置文件参数

如果form功能不涉及配置文件,可以跳过此步。

创建参数用以保存配置文件的值,参数初始值设置为当配置文件值为空时所希望的缺省值。如item_ updatability_control,初始为N。

在form级触发器PRE-FORM中添加以下代码:

if fnd_profile.VALUE('CUX_XXX_XXX_CONTROLS') is not null then

:parameter.item_updatability_control:=fnd_profile.VALUE('CUX_XXX_XXX_CONTROLS'); end if;

form后续功能开发通过此类参数达到配置文件控制的作用。

3.业务实体参数

如果form中的操作不需要区别不同的业务实体,可以跳过此步。

实际上,业务实体参数是一个名称为“ORG_ID”的特定的配置文件参数。

创建参数用以保存业务实体ID,一般起名为ORG_ID。

EBS Form开发总结

2.6 标准代码

在form级触发器PRE-FORM中添加以下代码: if fnd_profile.VALUE('ORG_ID') is not null then

:parameter.ORG_ID:=fnd_profile.VALUE(' ORG_ID ');

end if;

From后续开发中使用ORG_ID区别不同业务实体。 1.APP_CUSTOM

在程序单元app_custom. close_window中修改以下代码: if (wnd = 'MAIN') then

app_window.close_first_window;

表现的效果是:当用户点击MAIN窗口右上方的叉,整个form会退出;而当用户点击form的其他窗口右上方的叉,仅会隐藏当前窗口。

2.FORM同名PACKAGE

在程序单元中增加一个与form同名的package,package头里定义如下procedure: procedure event_handler(event varchar2);

form级触发器里的代码都建议写在这个event_handler内,尤其是行数多于3行时。

在package body里添加以下代码(不用folder可以跳过): PROCEDURE event_handler(event VARCHAR2) IS BEGIN

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

'LINE_PROMPT_BLOCKNAME', 'FOLDER_STACKED_CANVAS', 'MAIN', NULL, NULL,

EBS Form开发总结

NULL);

app_folder.event('INSTANTIATE'); END IF;

END event_handler;

3.FORM级触发器

以下代码均为实现folder。

名称

When-window-resized

FOLDER_ACTION

KEY-CLRFRM

WHEN-NEW-FORM-INSTANCE

代码

if :system.event_window in ('MAIN') then

app_folder.event('WHEN-WINDOW-RESIZED'); end if;

app_folder.event(:global.folder_action);

app_folder.event('KEY-CLRFRM'); FORM_NAME.event_handler('WHEN-NEW-FORM-INSTANCE');

注意点:如果When-window-resized中的window名不正确,在form实际运行时会发现folder区域不会随窗口宽度的变化而变化。

4.BLOCK级触发器

为实现folder功能,一共需要在Line块添加BLOCK级触发器14个:

触发器名称

WHEN-NEW-RECORD-INSTANCE

WHEN-NEW-BLOCK-INSTANCE PRE-QUERY POST-QUERY PRE-BLOCK POST-BLOCK KEY-ENTQRY KEY-EXEQRY KEY-PREV-ITEM KEY-NEXT-ITEM KEY-PRVREC KEY-NXTREC KEY-CLRREC 代码

app_folder.event('WHEN-NEW-RECORD-INSTANCE');

app_folder.event('WHEN-NEW-BLOCK-INSTANCE'); app_folder.event('PRE-QUERY'); app_folder.event('POST-QUERY'); app_globe.event('POST-QUERY'); app_folder.event('PRE-BLOCK'); app_folder.event('POST-BLOCK'); app_folder.event('KEY-ENTQRY'); app_folder.event('KEY-EXEQRY'); app_folder.event('KEY-PREV-ITEM'); app_folder.event('KEY-NEXT-ITEM'); app_folder.event('KEY-PRVREC'); app_folder.event('KEY-NXTREC'); app_folder.event('KEY-CLRREC'); EBS Form开发总结

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

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