随笔分类 - ORACLE FORM & REPORT
摘要:在标准Form中提交客户化请求,通过使用Form的个性化,完全可以实现这个需求。下面这个例子是在发票界面上打印付款申请,使用工具栏上活动--打印付款申请提交请求。首先创建菜单按钮,这个就不赘述了,触发器事件选择WHEN-NEW-FORM-INSTANCE其次,响应打印按钮 ,这里使用执行过程这个内置项来调用请求,调用的过程代码如下 [c-sharp] view plaincopyprint?PROCEDUREsubmit_pay_request(p_org_idINVARCHAR2,p_invoice_id_listINVARCHAR2)ISl_successBOOLEAN;l_request
阅读全文
摘要:在Oracle EBS二次开发中经常会使用下拉列表,下拉列表一般是写死的,实际上也是可以使用Record Group进行动态设置,实现的步骤如下:1,首先定义一个Record Group假设为TEST_REC_GP,SQL如下:[c-sharp] view plaincopyprint?SELECTcr.general_namelookup_code,cr.medicament_categoryvalueFROMcux_catalog_53_rulescrSELECT cr.general_name lookup_code, cr.medicament_category val...
阅读全文
摘要:本文记录了一些在Form开发过程中积累下来的技巧:Form中提交并发请求非数据库字段查询处理控制Form为只查询控制Item的属性Trigger的执行层次按钮处理逻辑日历相关1,Form中提交并发请求在提交请求之前,首先需要验证块,如果某些必填项没有填的话当然不能提交请求。[c-sharp] view plaincopyprint?APP_STANDARD.APP_VALIDATE(BLOCK_SCOPE);IF(notFORM_SUCCESS)THENRaiseform_trigger_failure;ENDIF;IF:SYSTEM.FORM_STATUS='CHANGED'
阅读全文
摘要:错误信息:无法显示 XML 页。 使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。 --------------------------------------------------------------------------------结束标记 'BATCH_DETAILS' 与开始标记 'PartyName'不匹配。处理资源 'http://erptest.easttop.com.cn:8000/OA_CGI/FNDWRR.exe?temp_id=3364...</BATCH_DETAILS>-
阅读全文
摘要:在开发过程中,经常碰到需要修改标准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-RECORD-INSTANCE WHEN-NE
阅读全文
摘要:在Oracle XML Publisher中需要实现每页打印固定行数:在程序中进行处理,这种方式需要将数据和格式混在一起,而且处理起来比较麻烦,搞得不好程序性能也会受到大的影响使用XSL命令来处理,这种方式加上条件判断,可以比较简单的实现固定行数的打印我设计了一个凭证打印,每张凭证打印只能打印5行,在没有限制行数的情况下,编写的标记如下:<?for-each:G_JE_LINE_NUM?><?JE_LINE_NUM?><?ACCOUNTED_CR?><?ACCOUNTED_DR?><?DESCRIPTION?><?end for
阅读全文
摘要:在Oracle Forms客户化开发中,如果遇到有在Form上提供关键性弹性域(以下简称“键弹性域”)功能支持的时候,我们可以利用FND_KEY_FLEX.DEFINE函数来轻松完成所有的初始化工作。其中也包括键弹性域的组合描述字段的显示的初始化:只要在FND_KEY_FLEX.DEFINE调用时指定了DESCRIPTION参数即可。然而有时我们仅是想要显示这个描述组合字段,仅此而已。并不需要提供完整的键弹性域功能。那么我们有什么快速而有效的方法来得到这个描述组合字段呢?试试下面的fnd_flex_keyval包里的方法吧~实例:获取库存物料的物料类别集中的类别组合“描述”字段需要用到的方法:
阅读全文
摘要:实现手电筒查找的功能 首先,先按TEMPLATE将其他功能先实现,然后再来实现查找的功能。手电筒查找的Effect有两二种,①LOV形式,②window形式。 1、LOV查找模式:一般适用于查询结果只返回单条条件的查询(如主从数据块的界面)。 ①创建一个parameter参数:TEST_P ②创建一个基于主键查询LOV-TEST_L,并将主键字段映射给Parameter参数TEST_P。 ③在数据块中创建PRE-QUERY触发器。 IF :parameter.G_query_find = 'TRUE' THEN :BLOCKNAME.HEADER_ID := :paramet.
阅读全文
摘要:在Oracle EBS的二次开发中,常有在主从关系的主块中需要显示明细块中金额或数量的汇总,在Oracle Form Builder中实际上提供了汇总的功能,但它的这个汇总功能的前提是汇总的明细块需要一次性查询出所有的数据,这对于基于B/S架构的EBS应用来说显然是不合适的,因此Oracle专门包装了一个汇总计算的方法app_calculate.running_total 来解决这个问题。下面以实际的例子来描述如何实现汇总计算,效果图如下:背景说明:头块中的Total字段(HEADERS.AMOUNT_TOTAL)汇总行上面Amount(LINES.AMOUNT)行中的Amount是Unit
阅读全文
摘要:一直有实施顾问询问我XXForm的XX LOV是什么逻辑,取数SQL是什么来着,以前比较笨,打开Form去看,运气好点,碰到LOV和Record Group都是固定的就一下找到了,运气不好有可能LOV是动态绑定到ITEM上,而LOV的RG是动态生成,想找个查询的SQL,可能要吐血,下面介绍一个最简单的方法,方便快捷而准确:1.打开个性化定义界面(如果没有权限,到系统配置文件设置中,查看是否是"隐藏诊断菜单"被设置成了是),所以定义一个个性化,action如下图所示:消息文本中的SQL语句是:"=(SELECT t.sid FROM v$mystat t where
阅读全文
摘要:1. 安装好form builder 后的截图2.创建一个form编译运行,报错这是因为没有启动Start OC4J Instance的原因3.启动4.找到Developer Suite安装目录下的jinit文件夹(如:E:\DevSuiteHome_2\jinit),安装其中的jinit.exe应用程序。5.在打开的Oracle Forms Builder中,点击菜单“编辑”-->“首选项”。在弹出框中,选择“运行时”选项卡,然后在“应用程序服务器URL”中,输入”http://127.0.0.1:8889/forms/frmservlet?config=jpi”,在“浏览器位置”中,
阅读全文
摘要:自己客制化form 提交了一个请求(并发报表),可是在find all my request 里面却找不到单独输入报表的名字却可以跑,为什么是不能提交请求,而form 里 已经显示了提交的request_id 了fnd_message.set_name('FND','Request ID: '||request_id);fnd_message.show;**************************form 里 已经显示了提交的request_id 了,但是在find all my requests 里却找不到!*********************发
阅读全文
摘要:在网上找了一些资料,不是实现不了就是不够完整.1.建立parameter method_ISMODIFY, 初始值为FALSE 2. BLOCK 级别的 when-new-record-instance if :PARAMETER.method_ISMODIFY = 'TRUE' THEN :system.message_level := 25;commit_form; :system.message_level := 0;:PARAMETER.method_ISMODIFY := 'FALSE';END IF; 3. 在行上最后一个ITEM ,when-new
阅读全文
摘要: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
阅读全文
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->PL/SQL数据包:createorreplacepackageCUX_GL_REP_LISTPKGis--Author:LIJINQIAN--Created:2005-7-129:50:00--Purpose:总帐科目列表--总帐汇总Procedurecuxgllistgath(errbufOutVarchar2,retcodeOutVarchar2,p_start_dateVarchar2,
阅读全文
摘要:WHEN-CREATE-RECORD的三大定律一大推论: 1.如果BLOCK是可INSERT的,且BLOCK的记录数为0,则在PRE-BLOCK之前必会调用2.如果BLOCK是当前块,且是可INSERT的,如果记录数为0,则会调用。比如,CLEAR_BLOCK时,执行查询但未查到记录时3.如果BLOCK得状态是NEW,那么每次FOCUS ON该BLOCK时,都会触发;QUERY,CHANGED不会WHEN-CREATE-RECORD的一大推论1.前提:主从块关系,关系的DEFFER=FALSE,从块是可INSERT的当主块记录从一条移到另一条时,如果从块记录不为0,触发3次WHEN-CREAT
阅读全文
摘要:1.word中的字段双击后,“添加帮助字段”的名称一定不能改动,且要大写。2. F和E是开始和结束3. 分组分页:<?for-each@section:><?split-by-page-...>4. 汇总列属性设置注意:function sumsource 源reset at 层次
阅读全文
摘要:在OAF页面的查找后台的数据源相对于在Form中显得更加麻烦,同时也无法像Form中那样能够较为准确的定位,但是也能够查找出大部分的内容。本文介绍如何使用OAF提供的诊断功能来快速查找OAF页面对应的数据库对象:关于本页功能(About this Page)SQL Trace功能一、使用关于本页功能(About this Page)前提:在用户层设置预制文件:Personalize Self-Service Defn 的值为Yes 来启动个性化模式步骤:点击OAF页面左下角的“About this Page”链接进入关于页面中,展开Page Definition部分的页面结构,页面的结构会随着
阅读全文
摘要:在Oracle EBS 的Form二次开发中,经常需要灵活的来控制某些组件是否可用、是否可见;有时希望某些字段的值自动生成或者手动输入;有时又希望能够根据不同的职责、不同的用户等来设置不同的行为控制。常见的需求:只有某些角色的人才能看到销售订单中“登记订单”这个按钮只有某些角色的人才可以切换到某个标签页实现订单号码根据需要自动生成编号或者手工录入快速编码的值即可以录入所有应用下的,也可以只能录入某个应用,更可以只能录入某个应用下某个类型下的值在某些情况下Form需要只能够查询……在Oracle EBS环境中有很多方法来实现这些功能,但是使用预置文件(Profile)、子功能(Subfuncti
阅读全文
摘要:发现很多开发人员对一些概念或者程序的写法不是很清楚,这也包括一些高级的开发人员也会犯一些基本的错误,因此我就整理一下大家容易犯的错误,希望大家能够在写程序的时候养成良好习惯。一、例外处理问题有很多人喜欢在处理exception时,置为'null',应该说这是一个很不好的习惯,如果没有定义特定的exception,最起码应该把数据库的错误信息完整的报出来。错误的写法: EXCEPTION WHEN OTHERS THEN NULL; END;正确的写法: EXCEPTION WHEN OTHERS THEN FND_FILE.PUT_LINE(FND_FILE.OUTPUT, S
阅读全文