Oracle Form个性化案例(一)

业务场景:

现有Form A,需通过A中的菜单栏中调用另一Form B,需将某值作为参数传入Form B中:

由于Form B首先是弹出的查询界面,故传值到查询界面中。

 

实现方法:

Custom.pll方式个性化

1、  需首先获得正式环境下的Custom.pll文件:

2、  定义自己实现功能的procedure。

代码首先在实现定义菜单中的项,app_special2.instantiate()定义触发器SPECIAL45,app_special2.enable()启用触发器SPECIAL45;

触发SPECIAL45时,通过fnd_function.Execute() 函数执行form对应的Function,函数中参数function_name 是Form B对应的Function的名称;参数other_params必须是Form B中存在的参数,若想传递多个参数,在拼接的字符中,需将参数之间以空格进行分隔,例 other_params => ‘param1= ’|| value1 || ‘  param2=’||value2 。

在调用Form B,触发when-new-form-instance时,将参数,传到查询block的Job number字段。

 

3、  在procedure Custom.event() 中添加代码

KS_CUSTOM_PKG.KS_EVENT(event_name);这样避免多Custom.event进行代码逻辑修改

 

4、  在包KS_CUSTOM_PKG中,分别调用需要的procedure。

 

Form直接个性化设置:

  1. 定义菜单栏中调用Form B的项(触发器)

 

 

  2. 定义触发器SPECIAL45,调用Form所对应的Function。

其中Condition设置Job不能为空,Job为传递的参数,为空时会出现错误:UTIL-PARAM STRING ERROR。

 

 

在执行Launch a Function 时,注意:

Function Code:为被调用Form B所对应的Function 名称;

Parameters:  =’PARAMTER1=’ || value1||’  PARAMETER2=’||value2 中的parameter都必须为被调用的Form B中存在的参数,如果多个参数就以空格对参数之间进行隔离。

posted @ 2013-09-08 19:09  Aston Martin - Hand  阅读(1518)  评论(0编辑  收藏  举报