EBS form的一些知识

      尽管Oracle的Developer工具已经升级到9i、10g,但EBS中使用的Forms Server和Forms Builder版本还是6i,今后的开发将逐步转移到Java,Oracle将来也不会在EBS中使用高于6i的Forms。

Developer 6i的安装不够友好,必须安装到Default Home,为避免手工修改注册表的烦恼,最好先安装6i,再安装其他Oracle产品。

使用Form创建一些数据对象

  1. 创建List

image

其中,Mspping of Other Values 这个属性,他的意思是,

从数据库中读出来的数据,不在这个列表内(这里是I和E),那么要映射为I还是E,如果不映射,那么该条记录将无法在Form中显示出来,表现出来的现象就是“数据库和View中明明有,界面却看不到”

删除List中的条目,使用Ctrl+Shift+<删除快捷键

  1. LOV 注意事项:

     不管是自动选择还是手工选择,只有“选择”了,才会触发LOV中各列的值返回给对
应的目标Item;而不验证的LOV就要注意了,因为其可能没有经过“选择”这一步。

      LOV还有个麻烦的问题,如果清空了Item的值,因为空值不触发验证,这样之前返回
到各个目标Item上的值并没有自动被清空,需要写代码处理。

  1. 字段和记录的控制

      字段的控制,最常见的就是默认值、是否必需、是否可以更新、是否可以F11查询。其
他的都可以顾名思义,可直接看各个属性。

     字段控制实例:

Customer、Sales Person、Price List在状态为非“Entered”的情况下,才不可更新
的,这需要用代码实现。在Block的WHEN-NEW-RECORD-INSTANCE触发器中写入
下代码,最好写成program unit:

if :ORDER_HEADERS.FLOW_STATUS_CODE = 'ENTERED' then
app_item_property.set_property('ORDER_HEADERS.CUSTOMER_NAME',UPDATE_ALLOWED,PROPERTY_TRUE);
app_item_property.set_property('ORDER_HEADERS.SALESREP_NAME',UPDATE_ALLOWED,PROPERTY_TRUE);
app_item_property.set_property('ORDER_HEADERS.PRICE_LIST_NAME',UPDATE_ALLOWED,PROPERTY_TRUE);
else
app_item_property.set_property('ORDER_HEADERS.CUSTOMER_NAME',UPDATE_ALLOWED,PROPERTY_FALSE);
app_item_property.set_property('ORDER_HEADERS.SALESREP_NAME',UPDATE_ALLOWED,PROPERTY_FALSE);
app_item_property.set_property('ORDER_HEADERS.PRICE_LIST_NAME',UPDATE_ALLOWED,PROPERTY_FALSE);
end if

记录的控制,最常见就是显示条数、是否可增/删/改/查、是否可以F11查询、是否显
示滚动条。
本例需要实现,在状态为非“Entered”的情况下,记录不可删除,这样需
要在Block的WHEN-NEW-RECORD-INSTANCE触发器中追加代码(红色部分),最
好写成program unit:

if :ORDER_HEADERS.FLOW_STATUS_CODE = 'ENTERED' then
app_item_property.set_property('ORDER_HEADERS.CUSTOMER_NAME',UPDATE_ALLOWED,PROPERTY_TRUE);
app_item_property.set_property('ORDER_HEADERS.SALESREP_NAME',UPDATE_ALLOWED,PROPERTY_TRUE);
app_item_property.set_property('ORDER_HEADERS.PRICE_LIST_NAME',UPDATE_ALLOWED,PROPERTY_TRUE);

else
app_item_property.set_property('ORDER_HEADERS.CUSTOMER_NAME',UPDATE_ALLOWED,PROPERTY_FALSE);
app_item_property.set_property('ORDER_HEADERS.SALESREP_NAME',UPDATE_ALLOWED,PROPERTY_FALSE);
app_item_property.set_property('ORDER_HEADERS.PRICE_LIST_NAME',UPDATE_ALLOWED,PROPERTY_FALSE);
end if;

  1. 日历控件

1、 编写Item的KEY-LISTVAL触发器:calendar.show;
2、 设置Item的List of Values属性:ENABLE_LIST_LAMP
3、 设置Item的Validate from List属性:No

转载于:https://www.cnblogs.com/SanFrans/p/3269007.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值