• 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);
    set_block_property('ORDER_HEADERS',DELETE_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);
    set_block_property('ORDER_HEADERS',DELETE_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

  • 相关阅读:
    硬盘安装windows2008的方法
    win7,win2008R2的vs2008 破解方法
    学习正则表达式
    C#里内置的DateTime基本功能
    jQuery Ajax 实例 全解析
    TreeView 部署后不能显示图标、js出错原因
    js 操作Listbox js 获取Listbox选择的值的代码
    ajax调用后台Datatable
    转:jquery刷新页面 页面跳转 js常用函数
    GridView多行表头的实现
  • 原文地址:https://www.cnblogs.com/SanFrans/p/3269007.html
Copyright © 2020-2023  润新知