zoukankan      html  css  js  c++  java
  • 使用Form Builder创建Form具体步骤

    使用Oracle Form Builder创建Form具体步骤

    (Data SourceTable)

    • 说明:当Block使用的Data Source为Table时,Form会自动Insert,Update,Delete,Lock。若要显示non-database Item,需在POST-QUERY Trigger 里手动写代码来为non-database Item取值。

    步驟一:分析需求设计Table架构

    • 1). Table需指定一Unique ID,可为其创建Unique Index,在Form里通过Sequence     为其赋值。
    • 2). Table和Sequence 创建在指定客制Owner下 (如CUX) 。
    • 3). 命名规则:XX+模组名称开头,Sequence名在Table名后加“_S”
         如Table名:CUX.XXPO_PO_HEADERS
         Sequence名:CUX.XXPO_PO_LINES_S
    • 4). Table要有以下5个栏位(参考系统标准表):
        CREATED_BY
        CREATION_DATE
        LAST_UPDATED_BY
        LAST_UPDATE_DATE
        LAST_UPDATE_LOGIN
    • 5). 在APPS下为客制Owner (如CUX) 的Table和Sequence创建Synonym (同义词) 。

    步驟二:套用Form模板TEMPLATE.fmb

    • 1). 将Template File开启并并另存新档 (可放在不同目录) 。
    • 2). 将模板提供的空Block、Canvas和Window删除 (名称为BLOCKNAME和DETAILBLOCK) 。

    步驟三:建立Block、Window、Canvas 、LOV

    • 1). 新建Data Block (建议先手动新增,重命名后再使用Data Block Wizard创建)
      可与Table名相同,如名称为:XXPO_PO_HEADERS
    • 2). 新建Window、Canvas (建议先手动新增,重命名后再使用Layout Wizard创建)
      建议Window和Canvas的名称与对应Block一样。
    • 3). 将Canvas对应的视窗指定到Canvas的Window属性。
    • 4). 将Window的Primary Canvas属性指定对应的Content Canvas。
    • 5). 使用Date Block Wizard创建Data Block
    • 6). 使用Layout Wizard创建Window、Canvas
    • 7). 新建LOV (建议先手动新增,重命名后再使用LOV Wizard创建)
    • 8). 将所有物件套用Subclass (Item: 要显示在Canvas上的Item套用即可)。
    • 9). 建立INDICATOR栏位,套用Subclass: CURRENT_RECORD_INDICATOR。
    • 10). 设置Window的Title属性,用于显示视窗左上角的标题。

    步驟四:修改必要属性及代码设置

    • 1). 设置Form的First Navigation Data Block属性为第一个要开启的Data Block
         如:XXPO_PO_HEADERS
    • 2). 在Form Trigger:PRE-FORM 修改
         app_window.set_window_position('<First_Window>', 'FIRST_WINDOW');

       如app_window.set_window_position('XXPO_PO_HEADERS', 'FIRST_WINDOW');

    • 3). 在Program Unit:APP_CUSTOM 修改Close_Window
         if (wnd = '<First_Window>') then
         app_window.close_first_window; …
         如:if (wnd = ' XXPO_PO_HEADERS ') then …

    步驟五:在系统打开Form 时让User选择Organization

    • 1). 先決條件:先建立四個 Parameter:
        CHART_OF_ACCOUNTS_ID (NUMBER)
        ORG_NAME (CHAR 240)
        ORG_CODE (CHAR 30)
        ORG_ID (NUMBER)
    • 2). 在Form的Trigger:PRE-FORM加入
         Procedure:FND_ORG.CHOOSE_ORG;
    • 3). 修改Window的Title属性为进入该视窗时左上角显示的标题:
         在Block的WHEN-NEW-BLOCK-INSTANCE Trigger 加入
         如:app_window.set_title('XXPO_PO_HEADERS', :parameter.org_code);
    • 4). 给ORGANIZATION_ID赋值:

    在Block的Trigger:PRE-INSERT 写入

    如::XXPO_PO_HEADERS.ORGANIZATION_ID := :parameter.org_id;

    步驟六:使用Sequence为Table的Unique ID赋值

    • 1). 在Block的Trigger:PRE-INSERT 写入以下程序
         如:select XXPO_PO_HEADERS_S.NEXTVAL
             into  :XXPO_PO_HEADERS.XXPO_HEADER_ID
           from  dual;

    步驟七:给CREATED_BYLAST_UPDATED_BY等栏位赋值

    • 方式有二:分前端、後端。
    • 1). 前端:
         在PRE-INSERT、PRE-UPDATE這兩個Block Trigger中,寫入:
         Fnd_Standard.Set_Who; 即可。
    • 2). 後端:
         Fnd_Global.User_ID 即為取得建立者 or 異動者。

    步驟八:日期型栏位使用日历

      • 1). 將Data Field的List of Values屬性值設定為ENABLE_LIST_LAMP。
      • 2). 將Data Field的Validate from List屬性值設定為No。
      • 3). 在Data Field的KEY-LISTVAL Item Trigger(Override)中,寫入Calendar.show; 
  • 相关阅读:
    MTK 官方 openwrt SDK 使用
    PF_RING packet overwrites
    pycares cffi
    libevent evbuffer bug
    浮点转字符串性能比较
    重写 libev 的 EV_WIN32_HANDLE_TO_FD
    thrift TNonblockingServer 使用
    accel-pptp 部署
    boost::asio 使用 libcurl
    蜂鸟A20开发板刷 cubietruck 的 SD 卡固件
  • 原文地址:https://www.cnblogs.com/bruce_zhao/p/3810246.html
Copyright © 2011-2022 走看看