使用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;

使用Form Builder创建Form具体步骤的更多相关文章

  1. [Form Builder]Oracle Form系统变量中文版总结大全

    转:http://yedward.net/?id=57 Form中的系统变量,它存在于一个Form的整个运行时期的会话之中,变量包含了有关Form相关属性的字节信息.有些变量标明了当前状态,还有些变量 ...

  2. Oracle EBS Form Builder使用Java beans创建窗体

    最近有个项目,需要研究一下Oracle的E-Business Sutie(EBS),对于以前没接触此套件的我来说,简直太痛苦了.在网上找了一堆资料,试着进行Form二次开发,也遇到各类奇葩问题.目前遇 ...

  3. day75 form 组件(对form表单进行输入值校验的一种方式)

    我们的组件是什么呢 select distinct(id,title,price) from book ORM: model.py class Book(): title=model.CharFiel ...

  4. [Form Builder]NAME_IN()与COPY()

    NAME_IN和COPY实际是间接引用,类似指针传递,而不是值传递... IF :VAR1 IS NULL ...  direct referenceIF NAME_IN ( :VAR1 ) IS N ...

  5. [Form builder]:about SYSTEM.MESSAGE_LEVEL

    If you want to suppress error messages then you have to set a system variable :system.message_level. ...

  6. WordPress Plugin Contact Form Builder [CSRF → LFI]

    # Exploit Title: Contact Form Builder [CSRF → LFI]# Date: 2019-03-17# Exploit Author: Panagiotis Vag ...

  7. Oracle Form Builder

    Oracle Form Builder 是Oracle的一个开发工具,可以针对Oracle公司的E-Business Suit的ERP系统开发的.对应的还有reports builder. Oracl ...

  8. js动态创建Form表单并提交

    javascript动态创建Form表单和表单项,然后提交表单请求,最后删除表单,代码片段如下(Firefox测试通过): var dlform = document.createElement('f ...

  9. 表单生成器(Form Builder)之伪造表单数据番外篇——随机车辆牌照

    前几天记录了一下表单生成器(Form Builder)之表单数据存储结构mongodb篇,之后便想着伪造一些数据.为什么要伪造数据呢?说来惭愧,因为拖拉拽设计表单以及表单对应的列表的PC端和移动端该显 ...

随机推荐

  1. jquery甘特图免费下载

    Silverlight Gantt甘特图是一款非常丰富,可定制,轻量级和高性能的控件. 项目甘特图: 可视化层次的任务列表. 可移动和拖拽调整条形图 可视化时间编辑器 编辑任务依赖关系 调整任务进度条 ...

  2. C++ Daily 《1》----关于对象

    1. 问题 请问如下的一个 class 的一个对象占了多少内存? 具体包含哪些东西? non-static 变量? static member 变量? member function?? virtua ...

  3. UE4 C++ 使用FTimeLine/FTime 实例 Actor moving faster than Timeline

    https://answers.unrealengine.com/questions/313698/timeline-issues.html   https://docs.unrealengine.c ...

  4. HttpContext.Current.Cache 和HttpRuntime.Cache的区别

    先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.      HttpRuntime.Cache:获取当前应用程序的Cac ...

  5. Android 学习第2课,下载 eclipse 工具

    可以到http://www.ddooo.com/softdown/61745.htm 下载下来是32位与64位都有的 而且是汉化的,经测试成功,还可以,不错!

  6. Java 部分注意160530

    1.1 变量的名字不可以重复 1.2 标识符命名规则:必须以字母_下划线货比富豪开头,余下的字符可以是下划线,货币符号,任何字母或数字,长度不限.不能用Java中的关键字或保留字做标识符. 1.3 l ...

  7. 2009年到2013年甲子园ED

    2009年 2010年  最喜欢的一个!看过N遍 2011年 也不错! 2012年  超级好听啊~^_^比10年的还好,看过N+1遍……o(╯□╰)o 2013年春季甲子园 2013年夏季 印象最深的 ...

  8. 论文笔记之: Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function

    Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function CVPR 2 ...

  9. centos6.4_安装Python3.5.2之问题

    一.安装centos6.4虚拟机 这个就不用我详细介绍了,网上安装教程一大把了哈,自己百度安装应该没啥问题了 二.下载python安装包 官网下载python3.5.2安装包:https://www. ...

  10. Makefile中的特殊宏定义以及实用选项

    Makefile中的一些特殊宏定义的名字跟shell中的位置变量挺相似的. $?    当前目标所依赖的文件列表中比当前目标文件还要新的文件 $@   当前目标我名字 $<   当前依赖文件的名 ...