使用Form Builder创建Form具体步骤
使用Oracle Form Builder创建Form具体步骤
(Data Source为Table)
- 说明:当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_BY 、LAST_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具体步骤的更多相关文章
- [Form Builder]Oracle Form系统变量中文版总结大全
转:http://yedward.net/?id=57 Form中的系统变量,它存在于一个Form的整个运行时期的会话之中,变量包含了有关Form相关属性的字节信息.有些变量标明了当前状态,还有些变量 ...
- Oracle EBS Form Builder使用Java beans创建窗体
最近有个项目,需要研究一下Oracle的E-Business Sutie(EBS),对于以前没接触此套件的我来说,简直太痛苦了.在网上找了一堆资料,试着进行Form二次开发,也遇到各类奇葩问题.目前遇 ...
- day75 form 组件(对form表单进行输入值校验的一种方式)
我们的组件是什么呢 select distinct(id,title,price) from book ORM: model.py class Book(): title=model.CharFiel ...
- [Form Builder]NAME_IN()与COPY()
NAME_IN和COPY实际是间接引用,类似指针传递,而不是值传递... IF :VAR1 IS NULL ... direct referenceIF NAME_IN ( :VAR1 ) IS N ...
- [Form builder]:about SYSTEM.MESSAGE_LEVEL
If you want to suppress error messages then you have to set a system variable :system.message_level. ...
- WordPress Plugin Contact Form Builder [CSRF → LFI]
# Exploit Title: Contact Form Builder [CSRF → LFI]# Date: 2019-03-17# Exploit Author: Panagiotis Vag ...
- Oracle Form Builder
Oracle Form Builder 是Oracle的一个开发工具,可以针对Oracle公司的E-Business Suit的ERP系统开发的.对应的还有reports builder. Oracl ...
- js动态创建Form表单并提交
javascript动态创建Form表单和表单项,然后提交表单请求,最后删除表单,代码片段如下(Firefox测试通过): var dlform = document.createElement('f ...
- 表单生成器(Form Builder)之伪造表单数据番外篇——随机车辆牌照
前几天记录了一下表单生成器(Form Builder)之表单数据存储结构mongodb篇,之后便想着伪造一些数据.为什么要伪造数据呢?说来惭愧,因为拖拉拽设计表单以及表单对应的列表的PC端和移动端该显 ...
随机推荐
- JSP应用程序(自定义错误页面)
一.编写 1.index.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> &l ...
- 一些常用的vim设置
以下内容皆来源于网络,感谢原作者.如果引用出处错误,请告知以便修改. 1. vim的几种模式和按键映射 转载自:[1] Map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手.vi ...
- crontab不能正确执行的问题
近期在部署crontab任务的时候,总是遇到在shell中单独执行正常,但是放到crontab定时执行出错的问题.若出现这类场景,九成就是环境变量的问题. 因为我的定制任务,基本上都需要使用sqlpl ...
- Kafka实战系列--Kafka的安装/配置
*) 安装和测试 cd /path/to/server#) 下载kafka二进制包wget http://apache.fayea.com/apache-mirror/kafka/0.8.1.1/ka ...
- Tuple方法
组元是C# 4.0引入的一个新特性,编写的时候需要基于.NET Framework 4.0或者更高版本.组元使用泛型来简化一个类的定义. public class Point { public int ...
- linux crontab -r 导致no crontab for root的原因及解决方案
使用方式 : crontab file [-u user]-用指定的文件替代目前的crontab. crontab-[-u user]-用标准输入替代目前的crontab. crontab-1[use ...
- 2015.12.29~2015.12.30真题回顾!-- HTML5学堂
2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停 ...
- MyBatis架构(转)
本文来自http://www.bubuko.com/infodetail-549184.html 如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处 ...
- testNG设置测试的执行顺序
在java类中,设置Test的执行顺序可以使用priority,或者enabled等属性.但是在testng.xml中,需要设置它的 preserve-order="true" 另 ...
- morhia解决BigDecimal映射问题
错误信息:morphia No usable constructor for java.math.BigDecimal 解决办法:增加自定义类型转换器,代码如下 package cn.huilink. ...