随笔分类 -  ORACLE FORM & REPORT

摘要:发现自己做的Form的bug:(有三个数据块,1头、2行、3子行)操作:进入第二个数据块,按Ctrl + F11,可以查询出税票。解决方法:1.可以想办法禁用Ctrl + F11组合键,我还不知道怎么弄...2.设置数据块1和数据块2的关系属性,属性中有一个是防止无主记录操作,选择为“是”,即解决此问题。3.可以设置查询条件。1)设置第二个数据块的pre-query:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1BEGIN2IF:pa 阅读全文
posted @ 2012-06-04 15:08 刘伟聪 阅读(220) 评论(0) 推荐(0)
摘要:在使用SELECT语句为某变量赋值时,往往会出现"NO_DATA_FOUND"和"TOO_MANY_ROWS"等异常情况。使用SELECT语句分两种情况:第一种情况,判断某表中是否有符合某一条件的记录,这时使用聚组函数MAX就可以避免以上两个例外的发生。其格式:SELECTMAX(列1),MAX(列2)......INTO变量1,变量2......FROM基表WHERE条件,当没有符合条件的数据时,该语句返回空,即变量1,变量2......的值均为空,而不会出现"NO_DATA_FOUND"例外。另外使用聚组函数MAX的同时也就避免了 阅读全文
posted @ 2012-06-04 15:08 刘伟聪 阅读(264) 评论(0) 推荐(0)
摘要:目标:输入供应商id后,点击zoom按钮,弹出此供应商历史信息。前期准备:一个forms name:HEK_PO_SPLHIS_TEST1.启用ZOOM按钮CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1functionzoom_availablereturnbooleanis23form_namevarchar2(30):=name_in('system.current_form');4block_namevarc 阅读全文
posted @ 2012-06-04 15:07 刘伟聪 阅读(272) 评论(0) 推荐(0)
摘要:在Report Builder中,所有对象的行为都是用它的属性来描述和控制的。因此要想熟练运用Report Builder中的各个对象作出复杂而完美的报表,就必须熟悉每个对象的属性,并掌握其用法。设置对象的属性是在属性选项板中完成的。Report Builder将对象的各个属性分别按其完成的功能归入属性选项板的各个属性段中。例如,文本对象的各个属性分别被归入常规信息、固定背景对象、Web链接、常规布局和高级布局五个属性段中。其中,“常规信息”属性段包含了对象的一些常规信息,“固定背景对象”属性段中包含了对象的“类型”(如直线、矩形)等属性,“Web链接”属性段包含了对象的Html/PDF行为属 阅读全文
posted @ 2012-06-04 15:06 刘伟聪 阅读(949) 评论(0) 推荐(0)
摘要:custom.pll是EBS标准的一个library,当系统启动的时候会加载这个library。 很多时候,我们会需要写一些pll文件,比如控制Form上某些item的属性,如果是控制标准Form的某些属性,那么我们就可以通过Library来实现,而不用去动标准的Form(一般我们建议不去修改标准的Form)。再比如在工具条上增加一些菜单,等等。 当然,所有这些我们都可以通过直接修改custom.pll来实现,但是,我们不建议这么做,我们可以copy custom.pll重命名为:xx_cn_custom.pll (名字自己取),然后把xx_cn_custom.pll加载到custom.... 阅读全文
posted @ 2012-06-04 15:05 刘伟聪 阅读(196) 评论(0) 推荐(0)
摘要:(转Oracle Seeker)在之前的文章 使用Custom.pll修改标准Form的LOV 中描述了如何使用Custom.pll修改LOV,现在介绍另外一种不需要修改fmb文件修改Form LOV的方法,使用Form的个性化工具。本文结合一个简单的Form做描述,这是没有个性化之前的LOV,LOV取自表FND_USER,没有做任何条件限制。首先打开Form的个性化工具,点击菜单帮助–诊断–自定义代码–个性化:一、选择触发器事件以及触发器对象在打开的个性化窗口中如下图,其中触发器选择WHEN-NEW-ITEM-INSTANCE,触发器对象选择HEADER.HEADER_ITEM(对应LOV的 阅读全文
posted @ 2012-06-04 15:04 刘伟聪 阅读(269) 评论(0) 推荐(0)
摘要:(转至:Oracle Seeker)在开发过程中,经常碰到需要修改标准Form中LOV的需求,一般来说都是做一些条件限制。在不修改标准Form的fmb文件的前提下,可以通过Custom.pll来实现。一、Custom.pll的工作机制在EBS中大部分Form都是在TEMPLATE.fmb的基础上创建的,另外还有一些HR模块的Form是在HRTEMPLT.fmb的基础上创建的,这些模板Form在form级的触发器中会去调用custom.pll这些Form级的触发器为:ZOOMWHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE WHEN-NEW-RECOR 阅读全文
posted @ 2012-06-04 15:04 刘伟聪 阅读(164) 评论(0) 推荐(0)
摘要:(转Oracle Seeker)在之前的文章 使用Custom.pll修改标准Form的LOV 中描述了如何使用Custom.pll修改LOV,现在介绍另外一种不需要修改fmb文件修改Form LOV的方法,使用Form的个性化工具。本文结合一个简单的Form做描述,这是没有个性化之前的LOV,LOV取自表FND_USER,没有做任何条件限制。首先打开Form的个性化工具,点击菜单帮助–诊断–自定义代码–个性化:一、选择触发器事件以及触发器对象在打开的个性化窗口中如下图,其中触发器选择WHEN-NEW-ITEM-INSTANCE,触发器对象选择HEADER.HEADER_ITEM(对应LOV的 阅读全文
posted @ 2012-06-04 15:03 刘伟聪 阅读(290) 评论(0) 推荐(0)
摘要:触发器执行顺序:1.当打开FORM时:(1)PRE-FORM(2)PRE-BLOCK(BLOCK级)(3)WHEN-NEW-FORM-INSTANCE(4)WHEN-NEW-BLOCK-INSTANCE(5)WHEN-NEW-RECORD-INSTANCE(6)WHEN-NEW-ITEM-INSTANCE2.当填写一行记录完成后,光标移动到下一条记录的时候:(1)WHEN-VALIDATE-RECORD(只将填写的记录与数据库中已存在的记录作唯一性的验证,如果只是页面上的数据重复而数据库中没有与其重复的值则不会报错.)(2)WHEN-NEW-RECORD-INSTANCE(3)WHEN-NEW 阅读全文
posted @ 2012-06-04 14:59 刘伟聪 阅读(233) 评论(0) 推荐(0)
摘要:封装过程 键触发子含义 对应按键ABORT_QUERY Key-EXIT[退出/取消]BLOCK_MENU Key-MENU[块菜单] F5CLEAR_BLOCK Key-CLRBLK[清空块] Shift+F5CLEAR_FORM Key-CLRFRM[清空FORM] Shift+F7CLEAR_RECORD Key-CLRREC[清空记录] Shift+F4COMMIT_FORM Key-COMMIT[提交/存盘] F10COUNT_QUERY Key-CQUERY[计算查询记录总数] ... 阅读全文
posted @ 2012-06-04 14:43 刘伟聪 阅读(344) 评论(0) 推荐(0)
摘要:Custom.pll : 客制化菜单1. 效果:2. 这个是在EVENT里头的Code:CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1if(event_name='WHEN-NEW-FORM-INSTANCE')then2--普通菜单3APP_SPECIAL2.INSTANTIATE('SPECIAL30','供应商历史采购cust',NULL,TRUE);4APP_SPECIAL2 阅读全文
posted @ 2012-06-04 14:41 刘伟聪 阅读(216) 评论(0) 推荐(0)
摘要:1、使用:parameter.G_query_find参数;IF (NAME_IN('PO_HEADERS.PO_HEADER_ID') IS NOT NULL) THEN :parameter.G_query_find := 'TRUE'; app_find.find('CUX_PO_HEADERS_ADD_MESSAGE'); go_block('CUX_PO_HEADERS_ADD_MESSAGE'); :parameter.G_query_find := 'FALSE'; ELSE FND_MESSAGE. 阅读全文
posted @ 2012-06-01 14:06 刘伟聪 阅读(652) 评论(0) 推荐(0)
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->createorreplacepackagebodyXXACI_AP_IMPORT_PKGis--Globalvariableg_pkg_nameCONSTANTVARCHAR2(30):='XXACI_AP_IMPORT_PKG';--DebugEnabledl_debugVARCHAR2(1):=nvl(fnd_profile.VALUE('AFLOG_ENABLED 阅读全文
posted @ 2012-06-01 14:05 刘伟聪 阅读(234) 评论(0) 推荐(0)
摘要:使用fnd_request可以实现在PLSQL代码中提交并发请求。但是如果请求设置了模板,代码提交请求是带不出来模板的,需要添加代码来为请求指定模板。代码如下Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->PROCEDUREsubmit_concurrent_program(x_request_idOUTNUMBER,x_return_msgOUTVARCHAR2,p_conc_prog_codeVARCHAR2,p_group_idNUMB 阅读全文
posted @ 2012-06-01 14:04 刘伟聪 阅读(995) 评论(0) 推荐(0)
摘要:功能 填充行数<?xdoxslt:set_variable($_XDOCTX,'RTotalVar', 0)?><?if: xdoxslt:get_variable($_XDOCTX,'RTotalVar') < 5 ?><?xdoxslt:set_variable($_XDOCTX, 'RTotalVar', xdoxslt:get_variable($_XDOCTX,'RTotalVar') + 1)?><?end if?> 阅读全文
posted @ 2012-06-01 14:04 刘伟聪 阅读(299) 评论(0) 推荐(0)
摘要:在Oracle EBS的二次开发中,常有在主从关系的主块中需要显示明细块中金额或数量的汇总,在Oracle Form Builder中实际上提供了汇总的功能,但它的这个汇总功能的前提是汇总的明细块需要一次性查询出所有的数据,这对于基于B/S架构的EBS应用来说显然是不合适的,因此Oracle专门包装了一个汇总计算的方法 app_calculate.running_total 来解决这个问题。下面以实际的例子来描述如何实现汇总计算,效果图如下:背景说明:头块中的Total字段(HEADERS.AMOUNT_TOTAL)汇总行上面Amount(LINES.AMOUNT)行中的Amount是Unit 阅读全文
posted @ 2012-06-01 14:03 刘伟聪 阅读(706) 评论(0) 推荐(0)
摘要:临时表解决:情景:输入条码,需要从一数据源A表查询数据,将查询结果显示在基于line表的block上面。假设BLOCK是基于表line,然后新建临时表line_tmp,并新建唯一索引。item:barcode 和 indate,其中barcode是条码,indate是条码之后紧接的一个item。新增数据 :barcode(post-change):先将条码匹配的数据查询出来,insert于line_tmp;indate(when-new-item-instance):这个触发器每刷一次条码就会触发一次,且紧接着barcode(post-change)。从line_tmp查询数据,然后一行一行c 阅读全文
posted @ 2012-06-01 14:03 刘伟聪 阅读(219) 评论(0) 推荐(0)
摘要:问题描述:当我们在Form的BLOCK级里面增加了Trigger WHEN-NEW-RECORD-INSTANCE,导致我们的Form在AP上面运行时,按F11查询时,显示的底色是白色 ,标准的是蓝色。效果:问题解决:把Execution Hierarchy属性改为BEFORE就可以了FORM触发器的三个层次:Before、Override、after英文描述:Specifies how the current trigger code should execute if there is a trigger with the same name defined at a higher lev 阅读全文
posted @ 2012-06-01 14:02 刘伟聪 阅读(566) 评论(0) 推荐(0)
摘要:在做小电筒的功能时候,第一次点击小电筒,弹出query_find窗体,但是当关闭这个窗体以后,小电筒就变成了灰色。解决方法:设置QUERY_FIND这个块的属性query allowed设为YES。 阅读全文
posted @ 2012-06-01 14:02 刘伟聪 阅读(473) 评论(0) 推荐(0)
摘要:原以为POST-QUERY触发器是查询出来的每一行触发一次。今天做了个实验,发现POST-QUERY触发器虽然是每查询一次触发一次,假如画面最大显示20行记录,总共查询出来会是大于20行的时候,这时候POST-QUERY触发器底下的代码仅触发20下,即画面显示一行,触发一次POST-QUERY。第21行因为没有显示在画面,所以未触发这一行的POST-QUERY事件。 阅读全文
posted @ 2012-06-01 14:01 刘伟聪 阅读(661) 评论(0) 推荐(0)