oracle form执行后左上角没出现oracle标记,Oracle FORM 开发技巧(1)
1.客户化FORM中选择库存组织
1.1. 将INVSTAND.fmb中的对象组:INV_PARAMS复制到客户化Form中
1.2. 在Form级别触发器PER-FORM触发器中添加:FND_ORG.CHOOSE_ORG代码
1.3. 在程序中使用库存组织ID: PARAMETER.ORG_ID
库存组织CODE:PARAMETER.ORG_CODE
库存组织NAME: PARAMETER.ORG_NAME
1.4. 将ORG加入FORM的title: 在Form级的WEHN-NEW-FORM-INSTANCE触发器中添加
app_window.set_title('', :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.使用MESSAGE测试FORM
fnd_message.debug('show message'); --show出的提示窗口
raise form_trigger_failure; --配合show message使用,中断Form的执行
5.在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被打开时
--设定UPDATE_USER这个window在APPROVER_UPDATE这个window的左上角稍偏下点,具体详见下面的介绍
APP_WINDOW.SET_WINDOW_POSITION('UPDATE_USER', 'CASCADE', 'APPROVER_UPDATE');
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的下方,通常是主窗口
6.处理查询时候,如果查询界面栏位不下条件,就表示这个栏位为空值
方法:在显示记录的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;
--将新的查询条件赋值给这个block的default_where进行查询
set_block_property(:SYSTEM.CURSOR_BLOCK,DEFAULT_WHERE,V_WHERE);
--清空,否则Form下次查询的时候会把前一次的条件带入
clear_record;
--执行查询命令
EXECUTE_QUERY;
--将原默认的default_where值重新恢复回去
set_block_property(:SYSTEM.CURSOR_BLOCK,DEFAULT_WHERE,v_default_where);
end;
7.取消lov的验证
set_record_property(:system.trigger_record,:system.trigger_block, STATUS,QUERY_STATUS);
常用于界面上的栏位值来源于select ....into...而此栏位又有绑定lov的情况下,防止以查询方式进入界面,没做任何操作就需要保存;或者界面上栏位在Table中只记录id,用name查找时,直接用select name into 栏位。
8.设置栏位属性值
app_item_property.set_property('ACT.NEW_ACT',Required,PROPERTY_TRUE);
ACT.NEW_ACT block的栏位
Required 属性名称
PROPERTY_TRUE 属性值
9.调用block的trigger
APP_RECORD.FOR_ALL_RECORDS('ACT_LIST','SELECT_COUNT');
ACT_LIST block名称
SELECT_COUNT trigger名称
10.当一个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名称。
11.弹出yes or no的询问对话框
FND_MESSAGE.SET_STRING('此核流程中已有核人T,是否⑵h除再}u?');
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;
12.单击按钮使得下一个要弹出的界面值清空
go_block('');
clear_block(no_validate);
13.清空block中资料
app_find.clear;清除当前block的值,不可用go_block('');的方式清除其他的block
app_find.clear_detail('');清除指定block的值
oracle form执行后左上角没出现oracle标记,Oracle FORM 开发技巧(1)相关推荐
- oracle form执行后左上角没出现oracle标记,oracle form学习笔记
新增form步骤 打开模板TEMPLATE,将其改成自己所要的名称,删除Data Blacks中的BLOCKNAME,DETAILBLOCK,删除Canvases中的BLOCKNAME,删除Windo ...
- oracle取_后的数字,聊聊四种Oracle数字取整函数
"四舍五入"是我们最早接触的数学概念之一.我们日常开发系统中,数字取整也是我们最常接触的一种需求样式.在财务相关系统中,四舍五入的算法有时候对系统用户造成巨大的影响. 在Oracl ...
- oracle 分组排序后取第一条_关于oracle中位图索引的探讨:概念、原理、优缺点...
概述 oracle索引主要分为以下几种: 1. b-tree索引 Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名.CREATE INDEX语句时, ...
- oracle导入失败后怎样删除已导入数据,Oracle数据的导入、导出、插入、更新及删除总结...
Oracle数据的导入.导出.插入.更新及删除总结 今天主要介绍一下使用Oracle的IDE:PL\SQL Developer进行数据的导入及导出操做方法. web 1. 数据导出 数据的导出比较简单 ...
- oracle查看执行最慢与查询次数最多的sql语句及其执行速度很慢的问题分析
oracle查看执行最慢与查询次数最多的sql语句 注:本文来源 于<oracle查看执行最慢与查询次数最多的sql语句> 前言 在ORACLE数据库应用调优中,一个SQL的执行次数/频率 ...
- 分析oracle缓慢原因,Oracle SQL执行缓慢的原因分析
以下的文章主要介绍的是Oracle SQL执行缓慢的分析,如果你是Oracle SQL执行方面的新手,你就可以通过以下的文章对Oracle SQL执行有一个更好的了解,以下就是文章的详细内容的介绍. ...
- oracle一条sql运行时间很长,oracle查看执行最慢与查询次数最多的sql语句及其执行速度很慢的问题分析...
oracle查看执行最慢与查询次数最多的sql语句 前言 在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻 ...
- oracle发现表被锁后又没了,Oracle的表被锁后的恢复
运行下列SQL,找出数据库的serial#,执行结果如下图所示 SELECT T2.USERNAME, T2.SID, T2.SERIAL#, T2.LOGON_TIME FROM V$LOCKE ...
- oracle中执行某sql语句后,如一系列delete、update等操作,怎么看影响的行数?如我执行了n个表的delete语句,得看我删除了多少数据,万一sql写的有问题,误删了数据,不是灾难?
oracle中执行某sql语句后,如一系列delete.update等操作,怎么看影响的行数?如我执行了n个表的delete语句,得看我删除了多少数据,万一sql写的有问题,误删了数据,不是灾难? 使 ...
最新文章
- AntDB上使用表空间
- mysql触发器行锁_MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
- html5 usb调试,USB调试怎么打开 USB调试模式打不开怎么刷机
- 基础、语法都不是最重要的,学Python最重要的是什么?编程思路!
- Java并发编程实战~Actor 模型
- 字符编解码的故事–ASCII,ANSI,Unicode,Utf-8区别
- java 线程 john_教你Java开发中多线程同步技巧
- [Swift]LeetCode890. 查找和替换模式 | Find and Replace Pattern
- TopCoder 2019线下比赛
- 如何利用Python开发一款快手加抖音自动刷视频脚本!
- 高考是不是计算机投档,1:1高考投档是什么意思 填报志愿注意事项
- 我的世界无限贪婪服务器,我的世界无尽贪婪mod
- 【开源】STM32硬盘音圈电机闭环控制
- 【UML】— 用例图
- 2014春招CVTE面试经历
- 什么是第一,第二,第三范式
- win10 pxe 安装linux,win10+TPLINK,用PXE安装redhat系统
- android 设置头像以及裁剪功能
- python模拟登录爬淘宝模特信息
- 房屋出租系统(初级)