EBS FORM開發總結(2)

本文介绍了Oracle EBS Forms开发中的一些关键点,包括环境变量NLS_LANG和FORMS45_PATH的设置,日历组件的实现,表结构设计原则,以及FORMS中编程的最佳实践,如使用PROGRAM UNIT代替直接写入TRIGGER,探讨了set_item_property和display_item的区别,并分享了报表和PROCEDURE参数处理的差异,以及在Form中设置堆叠画布、快捷键、光标指示列和数据关系的方法。
摘要由CSDN通过智能技术生成
  • 必要的环境设置

NLS_LANG
该环境变量在操作系统中设置,建议其值为:
AMERICAN_AMERICA.ZHS16CGB231280
FORMS45_PATH
该环境变量在操作系统中设置,用于指定引用对象的存放路径,请确认其值包含:
<$AU_TOP>/forms/US
<$AU_TOP>/resource

 

  •  

    日历

这是在TEMPLATE.fmb里面内置的对象,可以看到,form里包含calendar窗口、calendar画布、calendar数据块以及一些触发器等。

在template模板中创建一个数据块emp,其中hiredate为日期类型,我们选中hiredate项,设置其lov属性,选择“值列表”属性为ENABLE-LIST-LAMP,设置“从列表中验证”为“否”。

接下来创建hiredate项级触发器key-listval,写入代码:calendar.show;--此时默认为当天日期;注意:你可以给函数设置参数,该参数为日期的默认值,eg:calendar.show(to_date('','YYYY-MM-DD'));ok,运行测试,弹出值列表时就可以看到日历了。

  • EBS中客户化表结构的设计原则:

             1)必须包括一个主键,并建立相应的序列;
             2)建立5个WHO字段,也就是
             CREATED_BY                 NUMBER
             CREATION_DATE                 DATE
             LAST_UPDATED_BY                 NUMBER
             LAST_UPDATE_DATE         DATE
             LAST_UPDATE_LOGIN         NUMBER
             在FORM中使用属性类:CREATION_OR_LAST_UPDATE_DATE,WHO字段并不会自动地被赋值,必须自己在FORM中编写代码来完成这项工作。
             EBS中提供了一个函数FND_STANDARD.SET_WHO,大家只要在FORM的BLOCK级触发器PRE-INSERT/PRE-UPDATE中进行调用即可。

             3)对于业务数据表,要考虑建立15个弹性域字段;
             4)如果对于需要并发请求处理过的数据表,则需要增加跟踪请求的4个字段
                     REQUEST_ID         NUMBER
                     PROGRAM_APPLICATION_ID         NUMBER
                     PROGRAM_ID         NUMBER
                     PROGRAM_UPDATE_DATE         DATE
             5)要考虑这个表是否区分OU和库存组织;
  • 在FORM开发中不管是FORM级还是BLOCK级或者ITEM级的TRIGGER,不要把代码直接写到TRIGGER中,要使用PROGRAM UNIT来创建相应的TRIGGER,举例如下:

    FORM级和BLOCK级可以按照下面格式在PROGRAM UNIT中创建PACKAGE:
    PACKAGE BODY FORM_NAME/BLOCK_NAME IS
             PROCEDURE EVENT_HANDLER( EVENT   IN VARCHAR2)
             IS
             BEGIN
               IF EVENT = 'WHEN-NEW-FORM-INSTANCE' THEN
                  XXXXXXXX;
               ELSIF EVENT = 'PRE-FORM' THEN
                  XXXXXXXX;
               ELSE
                 APP_EXCEPTION.INVALID_ARGUMENT('EVENT_HANDLER', 'EVENT', EVENT);
               END IF;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值