Oracle EBS form技术
文章平均质量分 64
cunxiyuan108
这个作者很懒,什么都没留下…
展开
-
Oracle中ROWID详解
Oracle的ROWID用来唯一标识表中的一条记录,是这条数据在数据库中存放的物理地址。Oracle的ROWID分为两种:物理ROWID和逻辑ROWID。索引组织表使用逻辑ROWID,其他类型的表使用物理ROWID。其中物理ROWID在Oracle的8版本中进行了扩展,Oracle7及以下版本使用约束ROWID,Oracle8及以上版本使用扩展ROWID。本文描述物理扩展ROWID,由于约束ROWID仅仅是为了兼容早期版本,因此不做讨论。SQL> create table test_rowid (id n原创 2010-08-13 00:56:00 · 5035 阅读 · 1 评论 -
实现主从关系Form中汇总行金额/数量
在Oracle EBS的二次开发中,常有在主从关系的主块中需要显示明细块中金额或数量的汇总,在Oracle Form Builder中实际上提供了汇总的功能,但它的这个汇总功能的前提是汇总的明细块需要一次性查询出所有的数据,这对于基于B/S架构的EBS应用来说显然是不合适的,因此转载 2010-08-15 01:59:00 · 5005 阅读 · 0 评论 -
CREATE_RECORD或者NEXT_RECORD导致 FRM-40102 错误
在做Form开发中,经常会遇到需要在一个块中创建一条或者是多条数据。首先,一般我们会先定位到最后一条记录(有时候会先执行查询:app_find.find('BLOCK_NAME ');查询出需要的数据然后做最后一条记录的定位)。移动当前记录到最后一条记录可以使用下面的语法:G转载 2011-09-15 08:44:09 · 4288 阅读 · 0 评论 -
Form中Block的重新查询
Form中某些按钮可能调用了Package对表中某些字段进行更新,但是数据库中字段的修改不会马上反映到form的界面上,所以要进行重新查询,但是用户可能使用了查询窗口进行查询之后然后再点击按钮动作,如果简单的使用execute_query进行查询的话那么就会把原来的查询条件冲掉。原创 2011-09-05 08:59:00 · 10684 阅读 · 0 评论 -
Form开发积累的常用代码
获取当前窗口GET_VIEW_PROPERTY(GET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM, ITEM_CANVAS),WINDOW_NAME)设置金额显示格式PROCEDURE FORMAT_PRICE(EVENT VARCHAR转载 2011-08-04 23:48:14 · 5590 阅读 · 0 评论 -
Form中格式化数字、金额
在form界面我们要想格式化一个数字行如:123456.03的话,我们可以把这个Item的属性成这样金额的格式输入不应该用上面的方法,因为不同种类币种的格式掩码是不一样的,例如:币种为‘CNY’时金额保留两位小数,币种为‘BHD’时显示三位小数,有两种方法可以实现:(1) 用代码根据币种动态控制格式掩码设需要格式化的块为TEST,Item为AMOUNT,在块TEST的Post-query里加入如下代码:APP_ITEM_PROPERTY.SET_PROPERTY('TEST.AMOUNT', --需要格式化原创 2011-04-21 20:02:00 · 5652 阅读 · 0 评论 -
Oracle FORM“悄悄地”提交
<br />在form中进行保存时,如果使用commit_form的话会弹出信息提示“没有修改需要保存”或者“几条记录已保存”类似的字样,有时候不想被提示,可以使用APPCORE.pll中的app_form程序包中的quietcommit这个function,由于是一个function,所以需要定义一个变量用来接收返回值,返回值类型为boolean,当true的时候就说明成功,否则commit失败!<br />或者调用一下过程(将系统的消息级别更改为较低级别):<br />PROCEDURE DOCOMMI原创 2011-03-14 19:23:00 · 3120 阅读 · 2 评论 -
oracle form学习笔记
<br />新增form步骤<br /> 打开模板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中打开转载 2011-03-08 10:29:00 · 13087 阅读 · 0 评论 -
oracle form builder中from子句查询作为数据源
<br />1、创建from子句查询的步骤:<br /> a、手工创建一个数据块。<br /> b、在数据块的属性面板中选择“数据库数据块”为“是”。<br /> c、在数据块的属性面板中选择“查询数据源类型”为“from子句查询”,然后在“查询数据源名称”中写入select查询语句。<br /> d、根据需要创建数据项,并用相关数据库项目的名称来为每个数据项命名。然后修改数据项的“数据类型”、“长度”等属性。<br /> e、设置原创 2011-03-08 10:20:00 · 4302 阅读 · 0 评论 -
oracle form使用commit
<br />最近学习oracle form的开发,发现其中有以下几种方式可以进行commit。<br />有四种方式进行提交:<br /> <br />1.commit_form<br />针对form上面的数据变动进行commit,对于代码中的类似update,insert语句也进行提交;<br />如果form上面的数据变动和代码中的数据变动有冲突,最后以界面上的为准。<br />2.do_key('commit_form')<br />会首先寻找form下的triggers中的KEY-COMMIT这个原创 2010-11-22 17:23:00 · 6348 阅读 · 0 评论 -
Oracle EBS客户化程序中格式化金额
在Oracle EBS系统中,随处可见金额的显示格式,通常情况下都具有千分位符,同时有一定位数的精度,让我们先来看看一些现成的例子上面这些列子中的金额都显示了千分位符,同时具备以2位小数,难道这个格式就是程序写死的?答案显然是否定的。让我们来看看这个金额的格式是如何来确定的:1,正数显示的格式由预置文件:Currency:Positive Format来确定2,负数显示的格式由预置文件:Currency:Negative Format来确定3,是否显示千分位由预置文件:Currency:Thousands转载 2010-09-16 16:16:00 · 2049 阅读 · 0 评论 -
form 触发器的层次Before、Override、after的区别
<br />问题描述:当我们在Form的BLOCK级里面增加了Trigger WHEN-NEW-RECORD-INSTANCE,导致我们的Form在AP上面运行时,按F11查询时,显示的底色是白色 ,标准的是蓝色。<br /> <br />问题解决:把Execution Hierarchy属性改为BEFORE就可以了<br /> <br />FORM触发器的三个层次:Before、Override、after<br />英文描述:<br />Specifies how the current trigger原创 2010-08-25 01:04:00 · 2468 阅读 · 0 评论 -
使用NOT EXISTS 对LOV进行控制
<br />需求:当选择一个任务的成员或者客户时候,要使LOV只显示在数据库表中未插入的数据。<br /> <br />解决办法: 应用对LOV的数据源进行控制。采用NOT EXISTS<br /> <br />代码如下:<br />SELECT all_data.project_id project_id, all_data.task_id task_id, all_data.customer_id customer_id, all_data原创 2010-08-25 01:19:00 · 1140 阅读 · 0 评论 -
Oracle开发中open_form,call_form,new_form 的区别
1、open_form是一个受限的封装过程,他可以产生一个新的form但不代替原来的form,在新的form启动后可以不把控制移动到新的form里面,也可以将输入焦点移动到新的form里面,用户可以在两个form之间导航。〕 open_form的调用格式 open_form(form_name,activate_mode,session_mode,data_mode,paramlist_id) 具体意思, 1) form_name 文件名以及路径。 2) activate_mode选择activa原创 2010-08-17 12:45:00 · 3092 阅读 · 0 评论 -
Form开发中组件控制的几个常用方法
在Oracle EBS 的Form二次开发中,经常需要灵活的来控制某些组件是否可用、是否可见;有时希望某些字段的值自动生成或者手动输入;有时又希望能够根据不同的职责、不同的用户等来设置不同的行为控制。常见的需求:只有某些角色的人才能看到销售订单中“登记订单”这个按钮 只有某些角色的人才可以切换到某个标签页 实现订单号码根据需要自动生成编号或者手工录入 快速编码的值即可以录入所有应用下的,也可以只能录入某个应用,更可以只能录入某个应用下某个类型下的值 在某些情况下Form需要只能够查询 …… 在Oracle转载 2010-08-16 23:49:00 · 5501 阅读 · 0 评论 -
oracle form 触发器执行顺序
<br />FORM就是由一系列的触发器组成的。下面是对FORM中TRIGGER的执行顺序的总结。其中还有很多触发器没有被提到,这是因为程序中没有用到。但是在FORM运行的过程中,这些触发器的执行过程都是设置好了的,没有用到的触发器也一样会经过已经设置好的那个时间段,只是什么动作都没有做罢了。<br /> 下面,是常用的的触发器的执行顺序:<br /> <br />触发器执行顺序:<br />1. 当打开FORM时:<br />(1) PRE-FORM<br />(2)原创 2010-08-15 03:05:00 · 4439 阅读 · 1 评论 -
客户化Form中实现行号功能
在客户化Form开发中,经常会遇到需要给表格的记录块添加一个行号,行号不但作为数据行的一个序号,同时经常被作为单击的行标识,具有比较重要的业务意义。这个行号的特点是:新增行时自动生成默认行号:已有的最大行号+1 用户可以修改行号为合法的数字:大于0;保证唯一 如果用户修改了行号,新增生成的行号必须在用户修改行号的基础上+1 实现这样的行号相对比较麻烦,下面描述如何来实现上图中所示的行号功能:在记录块的PRE-QUERY中查询出数据库中已有的最大行号,并将其记录到参数中作为最大的行号,如果单据的头是新建的,那转载 2010-08-15 03:28:00 · 5141 阅读 · 0 评论 -
app_query.append用法
在项目在对某个form错误检查时候发现,当使用app_query.append时候,查询记录到一定数量时候会报错:数字或值错误。后来在matalink上查找之后发现原来用 app_query.append时候,where语句里面字节必须《2000,当大于这个字节数就会发生溢出。转载 2011-10-17 08:46:10 · 4539 阅读 · 0 评论