oracle form执行后左上角没出现oracle标记,oracle form学习笔记

新增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,修改其中的为自己的window,在triggers的when_new_item_instance中加入app_window.set_title('',: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('此核流程中已有核人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;

7.单击按钮使得下一个要弹出的界面值清空

go_block('');

clear_block(no_validate);

8.FND_STANDARD.SET_WHO;  插入建立者,建立日期,最后更新者,最后更新日前,最后登陆人等信息

9.清空block中资料

app_find.clear;清除当前block的值,不可用go_block('');的方式清除其他的block

app_find.clear_detail('');清除指定block的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 建oracle分区表,Oracle 10g 11g分区表创建举例

1.3. 创建其他类型分区表1.3.1. 用多列分区键创建范围分区表SQL> create table aning_mutilcol_range2 (aning_id number,3 aning_name varchar2(100),4 aning_year number,5 aning_month number,6 aning_day number,7 aning_amount number8 )9 partition by range (aning_y…

php carbon 连续日期,日期及时间处理包 Carbon 在 Laravel 中的简单使用

在编写 PHP 应用时经常需要处理日期和时间,这篇文章带你了解一下 Carbon – 继承自 PHP DateTime 类的 API 扩展,它使得处理日期和时间更加简单。Laravel 中默认使用的时间处理类就是 Carbon。namespace Carbon;class Carbon extends \DateTime{// code …

chmod g s oracle,chmod

chmod(1)名称chmod - 更改文件的权限模式用法概要chmod [-fR] absolute-mode file...chmod [-fR] symbolic-mode-list file...chmod [-fR] acl_operation file...chmod [-fR] [- named_attribute]...attribute_specification_list file...描述chmod 实用程序可更改或分配文件的…

linux lzo 压缩文件,Linux常用压缩和解压命令

.tar 解包 tar xvf filename.tar.tar 打包 tar cvf filename.tar dirname.gz 解压1 gunzip filename.gz.gz 解压2 gzip -d filename.gz.gz 压缩 gzip filename.tar.gz 和 .tgz 解压 tar zxvf filename.tar.gz.tar.gz 和 .tgz 压缩 tar zcvf filename.tar.gz dirname.bz2 解压1 …

linux进程cpu时间片,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼图 1 RT-Linux结构RT -Linux的关键技术是通过软件来模拟硬件的中断控制器。当Linux系统要封锁CPU的中断时时,RT-Linux中的实时子系统会截取到这个请求,把它记录下来,而实际上并不真正封锁硬件中断…

linux中进行远程服务器连机可以采用telnet,端口号为,使用telnet测试指定端口的连通性...

原标题:使用telnet测试指定端口的连通性telnet 是一个阉割版的 ssh ,它数据不加密,数据容易被盗窃,也容易受中间人攻击,所以默认情况下 telnet 端口是必须要被关闭的。telnet为用户提供了在本地计算机上完成远程主机工…

linux xd命令,看Linux文件的内容:用cat,less,more,head,tail,nl,od,xxd,gv,xdvi命令

使用命令在Linux系统中查看文件的内容是Linux管理员的基本技能之一,在Linux中,有许多应用程序以不同的方式显示文件内容。您可以使用cat、less、more、head、tail、nl、od、xxd、gv、xdvi命令来查看文本文件或任何其他文件。为了对此进行测试&#xff0c…

linux远程拷贝免手动输入密码,scp远程拷贝避免输入密码

使用scp远程拷贝文件到指定服务器上,在客户端生成密钥放在需要验证的服务器上,这样再次连接后直接登陆,避免输入密码。设定场景我们需要将tomcat服务器(client1)192.168.30.20 上的catalina.out日志文件,每天使用指定用户拷贝到日…

玩转linux文件描述符和重定向,玩转Linux文件描述符和重定向

本文介绍linux中文件描述符与重定向的相关知识,文件描述符是与文件输入、输出相关联的整数,它们用来跟踪已打开的文件。有需要的朋友参考下。原文出处:linux下的文件描述符是与文件输入、输出相关联的整数。它们用来跟踪已打开的文件。最常见…

linux哪个指令可以设定使用者的密码,linux期末考试练习题 2

一、单项选择题1、下面不是对Linux操作系统特点描述的是()A、良好的可移植性B、单用户C、多用户D、设备独立性2、查看创建目录命令mkdir的帮助文档可以使用()A、mkdir -hB、man mkdirC、help mkdirD、info mkdir3、用标准的输出重定向(>)像”>file01”能使文件file01的数…

linux脚本格式模板,Linux Shell 常见的命令行格式简明总结

#在后台执行 cmd 指令cmd &#命令序列. 在同一行执行多个命令cmd1 ; cmd2#在当前 shell 中以一组的形式执行多个命令{ cmd1 ; cmd2 ; }#在子 shell 中以一组的形式执行多个命令(cmd1 ; cmd2)#管道. 以 cmd1 的执行输出作为 cmd2 的输入cmd1 | cmd2#命令替换. 以 cmd2 的执行…

linux怎么用命令打开wine,Linux系统运维:10分钟教你如何使用Wine在Linux下玩魔兽世界...

本文主要向大家介绍了Linux系统运维的如何使用Wine在Linux下玩魔兽世界,通过具体的步骤向大家展现,希望对大家学习Linux系统运维有所帮助。目标:在 Linux 中运行魔兽世界发行版:适用于几乎所有的 Linux 发行版。要求:具…

linux中如何查看某个端口是否被占用,LINUX中如何查看某个端口是否被占用

之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下:1.netstat -anp |grep 端口号如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作&#…

linux实现自己的write函数,Linux 内核源码阅读 - write 系统调用的实现

最近在看write系统调用的实现,虽然还有一下细节不是很清楚,但是大致的实现机理还是有一定的理解了。总结如下:这里假设最普通的情况,不考虑Direct IO 的情况。从全家的高度看,要往一个文件中写入内容,需要一…

linux7.0使用教程,CentOS7.0使用手册精编.pdf

CentOS7.0 手册第一部分:显卡驱动安装篇 (针对单显卡而言)或许CentOS7.0 版本是遇到的装显卡驱动最烦的一个,相比Ubuntu 、CentOS7.0 之前版本(如:CentOS6.5、CentOS6.4 )而言,操作步骤如下:由于笔者我的显卡是华硕圣骑…

linux中s权限大小写的区别,Linux中的权限

1.文件与目录权限1)UID与GIDUIDUID是一个数值,是Linux系统中唯一的用户标识,用于区别不同的用户。在系统内部管理进程和文件保护时使用UID字段。在Linux系统中,注册名和UID都可以用于标识用户,只不过对于系统来说UID更为重要&…

linux中shell自动对齐代码,linux – Shell编程 – 如何printf像表一样对齐我的输出?...

如何printf像表格一样对齐我的输出?Title AuthorBaokyBook Baoky2Use basename commandUse basename command .. Baoky我的部分代码是这样的titlelength${#title};首先我获得标题长度,然后我就像这样打印titlespaceexpr 60 - titlelength;printf "%s %${titles…

linux的安装组和管理组的区别吗,Linux用户和组管理

Linux用户和组管理安装上下文:进程以其发起者的身份运行;进程对文件的访问权限,取决于发起此进程的用户的权限;系统用户:为了能够让那后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用…

在linux下vcd光盘提取,linux下抓取Vcd的视频文件[Linux安全]

赞助商链接本文“linux下抓取Vcd的视频文件[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:LP的瑜伽碟需…

Linux清mysql磁盘,mysql与linux ~ 磁盘分析与调优

一 简介 谈谈磁盘IO的问题二 目的:如何进行IO性能问题的排查二 linux角度一 机械硬盘基本定义寻道时间,表示磁头在不同磁道之间移动的时间(最耗时)。旋转延迟,表示在磁道找到时,中轴带动盘面旋转到合适的扇区开头处。传输时间,表…