- 浏览: 325789 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (169)
- ORACLE EBS FORM开发 (39)
- ORACLE EBS业务 (18)
- ORACLE DB (13)
- ACCOUNTING (0)
- 休闲娱乐 (5)
- 开发自己 (1)
- OAF开发 (15)
- LINUX (2)
- ORACLE EBS文档 (1)
- 疑难杂症 (3)
- WEB ADI (2)
- 报表开发 (2)
- EBS有用SQL (8)
- ORACLE EBS开发 (5)
- ORACLE EBS DBA (15)
- EBS日常维护 (24)
- Oracle EBS workflow (2)
- Oracle EBS 个性化 (2)
- EBS常见接口表应用 (10)
- EBS标准API应用 (3)
- Oracle EBS 数据迁移 (2)
- Oracle EBS杂项技术荟萃 (1)
- EBS之事半功倍 (1)
- ORACLE EBS ALERT (1)
- OCP之路 (4)
最新评论
-
594597634:
楼主没有给解决方案啊
!我急求如何解决啊
亲历:JBO-25058 -
sjmei:
嗯,不错,学习了
PL/SQL NO_DATA_FOUND、SQL%NOTFOUND、SQL%ROWCOUNT -
maojieming:
做公交车,应该是“关门打X”
北京公交车一族必备绝技 -
hollysun:
现在功夫都练得炉火纯青了,独孤九剑~
北京公交车一族必备绝技 -
xyh:
还有一招:锁喉功,掐死你,捏死你
北京公交车一族必备绝技
新增form步骤
打开模板TEMPLATE,将其改成自己所要的名称,删除Data Blacks中的BLOCKNAME,DETAILBLOCK,删除Canvases中的BLOCKNAME,删除Windows中的BLOCKNAME,新增自己的Windows,Canvases,DateBlacks,在form级别的PRE-FORM中将Blockname改成自己新增的window,若区分ORG,则将FND_ORG.CHOOSE_ORG;加入BLOCK的上一行,在Program_unit中打开APP_CUSTOM,修改其中的<your first window>为自己的window,在triggers的when_new_item_instance中加入app_window.set_title('<自己的window名称>',:parameter.org_code),将org加入form的title.
1.在Form的title上加上Org_code
在Form级的WHEN-NEW-FORM-INSTANCE这个trigger中加入app_window.set_title('QUERY_FIND',:parameter.org_code);即可。
2.查看弹性栏位数据来源的路径:system administrator-->application-->flexfield-->descriptive-->segment
3.初始化view
begin
dbms_application_info.set_client_info(188);
end;
对需要user_id才能访问的view,需要先初始化一个合法的user_id进去
begin
fnd_global.apps_initialize(26872,56536,401);
end;
4.常用代码
fnd_message.debug('show message'); --show出的提示窗口
raise form_trigger_failure; --配合show message使用,中断Form的执行
在Form open/close的时候对界面的设定
例:在close_window下写入,来控制多window的Form在关闭子窗口时切回到那个block上去
if (wnd = 'QUERY_FIND') then --当query_find这个window关闭的时候
app_window.close_first_window; --关闭第一个window,即为关闭这个window
elsif (wnd = 'APPROVER_UPDATE') then --当approve_update这个window关闭时
go_block('QUERY_FIND'); --go_block到query_find这个block上去
end if;
在open_window下写入以下代码,来控制新window打开的方式
if (wnd = 'UPDATE_USER') then --当window UPDATE_USER被打开时
APP_WINDOW.SET_WINDOW_POSITION('UPDATE_USER', 'CASCADE', 'APPROVER_UPDATE'); --设定UPDATE_USER这个window在APPROVER_UPDATE这个window的左上角稍偏下点,具体详见下面的介绍
SET_WINDOW_PROPERTY('UPDATE_USER', VISIBLE, PROPERTY_TRUE);
GO_BLOCK('UPDATE_USER'); --指定要显示的block
elsif (wnd = 'ACT') then
APP_WINDOW.SET_WINDOW_POSITION('ACT', 'CASCADE', 'APPROVER_UPDATE');
SET_WINDOW_PROPERTY('ACT', VISIBLE, PROPERTY_TRUE);
GO_BLOCK('ACT');
end if;
app_window.set_window_position详解
procedure APP_WINDOW.SET_WINDOW_POSITION(
child_window varchar2,
style varchar2,
parent_window varchar2 default NULL);
说明:说明子窗口的显示位置
参数:child_window 指定位置的子窗体名称
style 子窗口的定位类型
parent_window 子窗口的上阶窗口名称
style:CASCADE 多个窗口从左上向右下排列
RIGHT,BELOW 子窗口在父窗口的右边或者下方,且父窗口不会覆盖子窗口
OVERLAP 子窗口和父窗口重叠,对齐父窗口左边,但向下位移0.3
CENTER 子窗口在父窗口的中间显示
FIRST_WINDOW 显示在toolbar的下方,通常是主窗口
处理查询时候,如果查询界面栏位不下条件,就表示这个栏位为空值
方法:在显示记录的block下的KEY-EXEQRY这个trigger下做判断,然后将最终的where条件赋值给这个block的default_where里面去。代码如下
declare
v_default_where varchar2(400); --定义变量用来存放这个block的初始where条件
V_WHERE VARCHAR2(2000); --定义变量用来存放新的where条件
begin
v_default_where:=get_block_property(:SYSTEM.CURSOR_BLOCK,DEFAULT_WHERE);--获取此block初始的where条件
V_WHERE:=v_default_where; --将初始的where条件赋值给V_WHERE这个变量中
if v_default_where is null then --当初始条件为空时,并条件的时候不需要加'where','and'之类
if :QUERY_FIND.EMP_CLASS_CODE is null then --如果查询界面的那个栏位为空
V_WHERE:=V_WHERE || ' EMP_CLASS_CODE is null'; --将查询条件并上此栏位is null
else
V_WHERE:=V_WHERE || ' EMP_CLASS_CODE='||:QUERY_FIND.EMP_CLASS_CODE;--查询界面的栏位有值就用栏位等于的sql查询语句
end if;
else --当初始条件不为空,并查询条件时需要加'and'
if :QUERY_FIND.EMP_CLASS_CODE is null then
V_WHERE:=V_WHERE || ' and EMP_CLASS_CODE is null';
else
V_WHERE:=V_WHERE || ' and EMP_CLASS_CODE='||:QUERY_FIND.EMP_CLASS_CODE;
end if;
end if;
set_block_property(:SYSTEM.CURSOR_BLOCK,DEFAULT_WHERE,V_WHERE); --将新的查询条件赋值给这个block的default_where进行查询
clear_record; /*清空,否则Form下次查询的时候会把前一次的条件带入*/
EXECUTE_QUERY; --执行查询命令
set_block_property(:SYSTEM.CURSOR_BLOCK,DEFAULT_WHERE,v_default_where); --将原默认的default_where值重新恢复回去
end;
取消lov的验证
set_record_property(:system.trigger_record,:system.trigger_block, STATUS,QUERY_STATUS);
常用于界面上的栏位值来源于select ....into...而此栏位又有绑定lov的情况下,防止以查询方式进入界面,没做任何操作就需要保存;或者界面上栏位在Table中只记录id,用name查找时,直接用select name into 栏位。
设置栏位属性值
app_item_property.set_property('ACT.NEW_ACT',Required,PROPERTY_TRUE);
ACT.NEW_ACT block的栏位
Required 属性名称
PROPERTY_TRUE 属性值
调用block的trigger
APP_RECORD.FOR_ALL_RECORDS('ACT_LIST','SELECT_COUNT');
ACT_LIST block名称
SELECT_COUNT trigger名称
5.当一个window上有多个canvas的时候,往往会造成某个canvas不显示,解决此方法可用
show_view('canvas')命令,其中canvas为需要显示的canvas名称。
注意:当使用show_view来显示canvas时,焦点会回到之前的canvas上,这样在show canvas_stacked的时候就不会有问题,但在show新打开的window的时候就会造成要显示的window闪一下就跑到之前的window的后面去,解决此问题可以调用
app_custom.open_window('ACT_LIST'); 来show你要的window,其中ACT_LIST为block名称。
6.弹出yes or no的询问对话框
FND_MESSAGE.SET_STRING('此簽核流程中已有簽核人員,是否將其刪除再複製?');
v_ques_no := FND_MESSAGE.QUESTION('YES','NO',NULL);
if v_ques_no=1 then
del_lines(p_head_id);
add_lines(p_head_id,p_organization_id);
else
null;
end if;
7.单击按钮使得下一个要弹出的界面值清空
go_block('<blockname>');
clear_block(no_validate);
8.FND_STANDARD.SET_WHO; 插入建立者,建立日期,最后更新者,最后更新日前,最后登陆人等信息
9.清空block中资料
app_find.clear;清除当前block的值,不可用go_block('<blockname>');的方式清除其他的block
app_find.clear_detail('<blockname>');清除指定block的值
<script></script>
发表评论
-
FRM-40400:事务完成:已应用和保存X条记录"消息框不显示处理方法
2013-01-16 16:28 1500每次成功退出保存修改或添加记录时窗体都会弹出“FRM-4040 ... -
app_fields.set_required_field
2012-07-05 10:12 1213用来设置某个栏位为必录 可以在A的WHEN-VALIDAT ... -
Oracle EBS Form 开发 Tips
2012-07-05 09:49 12028EBS Form开发中经常会遇到一些小问题,以免再次遇到 ... -
form 触发器的层次Before、Override、after的区别
2012-04-10 16:54 1604问题描述:当我们在Form的BLOCK级里面增加了Tri ... -
FND_MESSAGE_PUB.get及error_handler.get_message用法
2012-02-20 20:56 37461. FND_MESSAGE_PUB.get用法,调用标准AP ... -
oracle EBS User Profile使用举例
2012-02-20 20:33 5474Oracle EBS 用户配置文件 ... -
commit_form do_key('commit_form') forms_ddl('commit');
2011-11-24 18:26 16951.commit_form 针对form上面的数据变动进行co ... -
open_form,call_form,new_form 的区别
2011-11-24 18:17 1165(一) open_form是一个受限的封装过程,他可以 ... -
亲历FRM-30425
2011-10-10 10:42 1163FRM-30425: Summarized database ... -
oracleform触发器执行顺序及键定义
2011-09-08 10:57 14341当打开FORM时: (1)PRE-FORM (2 ... -
FRM-30425问题解决
2011-08-01 16:31 2923FRM-30425: Summarized database ... -
EBS中取profile值的用法
2011-05-31 12:33 2178[code]fnd_profile.value的用法: ... -
Form中Block的重新查询
2011-05-31 12:28 1117Form中某些按钮可能调用了Package对表中某些字段进行更 ... -
Oracle EBS Standard Forms 开发规范标准的目的
2011-05-31 12:26 1257两大目标:一、让程序能由人类(human kind)进行维 ... -
调用Form
2011-05-11 11:36 1056(一) open_formopen_form是一个受限的封装过 ... -
范围弹性域
2011-03-24 16:32 1173范围弹性域是使用的键弹性域的一种扩展,其没有专门的弹性注册 ... -
form做好以后,别忘记检查这些
2011-03-24 16:30 11341.常规属性的设置,如模块、数据块、画布、窗口,常规触发器 ... -
使用Form个性化修改标准Form的LOV
2011-03-24 15:24 1399本文结合一个简单的Form做描述,这是没有个性化之前的LOV, ... -
使用Custom.pll修改标准Form的LOV
2011-03-24 15:23 1695在开发过程中,经常碰到需要修改标准Form中LOV的需求,一般 ... -
form开发的小总结
2011-03-22 12:14 1760Form 开发的一些小总结.当然要实现如下的功能不一定要这样做 ...
相关推荐
这份“FORM的学习笔记DOC”显然包含了作者深入学习Oracle Form的详细记录,包括理论知识、实践技巧以及可能的截图示例,为初学者提供了宝贵的资源。 在Oracle Form中,开发者可以创建交互式的用户界面,这些界面...
### Oracle学习笔记与教程知识点详解 #### Oracle 9i概览与重要性 **Oracle 9i**,作为Oracle数据库发展史上的一个里程碑,不仅是一个简单的数据库服务器产品,更是一个全面的应用系统运行与开发平台。它标志着...
### Oracle ERP个人学习笔记知识点详解 #### 一、系统配置:深入理解Forms6i与TNSNAMES.ORA 在Oracle ERP的学习与实践过程中,系统配置是基础且关键的环节,尤其是在部署和运行Oracle Forms 6i时。配置正确与否...
FORM个性化学习笔记是基于Oracle E-Business Suite(EBS)的个性化学习笔记,旨在帮助学习者更好地理解和掌握FORM个性化的基本操作和高级应用。下面是该笔记的详细知识点总结: 概述 FORM个性化学习笔记是EBS中的...
### Oracle EBS 11.5.10 学习笔记之系统安装篇 #### 前言 从去年十月开始对ERP行业产生了浓厚的兴趣之后,作者决定利用业余时间深入研究ERP领域的相关知识。鉴于作者本身的背景是Oracle开发与数据库管理(DBA),...
- **前言**:这部分主要介绍了作者王重东的学习心得和笔记整理的过程。 #### 三、EBS 入门指南 - **入门一周之口水贴**:介绍EBS的基础概念、术语和常见操作流程。 - **入门二周之口水贴**:深入讲解如何使用EBS...
Oracle9i备课笔记——吕海东 第1讲 Oracle9i简介 目的: 1. 了解数据库的发展,关系数据库的基本原理。 2. 了解目前市场上流行的数据库产品及特点 3. 了解Oracle数据库的发展 4. 掌握Oracle9i产品系列 5. 掌握Oracle...
在"韩顺平—玩转oracle视频教程笔记"中,你将深入学习Oracle的使用技巧和管理方法,涵盖数据库设计、SQL查询、存储过程、触发器、索引优化等多个方面。教程可能还会涉及数据库备份与恢复、性能监控与调优,这些都是...
### Oracle-ERP开发笔记知识点概览 #### 一、Oracle Forms基础 **1. 设置ITEM为必填项** - 在Oracle Forms中,可以为特定的ITEM(字段)设置必填属性,确保用户在提交表单之前必须填写这些字段。这通常通过属性...
Oracle学习笔记...............121 前言....................................121 第一章 Selecting Rows.....................124 第二章 Limiting Selected Rows.......127 第三章 Single Row Functions.............
对于那些从传统FORM环境转向OAF开发或从Java领域进入EBS领域的开发者来说,这份笔记提供了宝贵的入门指南。 #### 二、准备工作与环境配置 ##### 2.1 下载并安装JDeveloper - **下载**:访问Oracle官方网站或通过...
《软件工程师学习笔记大全》是针对C++和JAVA这两门编程语言的学习资源集合,涵盖了从基础知识到高级技术的广泛内容。这份压缩包包含了多个不同主题的笔记文档,旨在帮助学习者深入理解和掌握软件开发的核心技能。 ...
在《Delphi学习笔记.pdf》中,你可以找到关于这些知识点的详细解释和实例,从基础知识到高级应用,一步步深入理解并掌握Delphi编程。通过实践和阅读这些笔记,你将能够提升自己的Delphi开发技能,无论是初学者还是...
Oracle学习笔记...............121 前言....121 第一章 Selecting Rows.....................124 第二章 Limiting Selected Rows.......127 第三章 Single Row Functions..........127 第四章 Displaying Data from ...
### Oracle ERP(NEW)笔记概览与核心知识点 #### 一、Oracle EBS(Enterprise Business Suite)入门 Oracle EBS是Oracle公司推出的一款全面的企业管理软件解决方案,它整合了财务、供应链、制造、项目管理、客户服务...
开发主要是编写存储过程、触发器等,还有就是使用Oracle的Develop工具做form。需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭;管理则需要对Oracle数据库的原理有深刻的认识,有全局操纵的能力和...