ZOOM 可用于在一个FROM中直接调用相关的功能,比如在采购订单界面调用查询供应商信息的FORM界面。它的原理非常简单,就是调用出一个FUNCTION(此处以FORM为例),然后执行查询。
1. 目标FORM编码
在WHEN-NEW-FORM-INSTANCE事件中添加代码:
IF :parameter.doc_id IS NOT NULL THEN
go_block('CUSTFORM_BLOCK'); -- 定位到被查询的块
do_key(’execute_query’);-- 自动执行查询
:parameter.doc_id := NULL;-- 清除参数,以免影响正常查询
END IF;
在该目标块的PRE-QUERY事件中根据具体行为增加查询条件,也可以在块的WHERE属性中直接增加。如:
WHERE (:parameter.doc_id is null or cust_rec_v.doc_id like :parameter.doc_id)
2. ZOOM事件编码
在事件中调用目标功能:
fnd_function.EXECUTE(function_name => 'CUSTFORM',
open_flag => 'Y',
session_flag => 'Y',
other_params => 'DOC_ID = "1" ORG_ID="123"');
其中other_params中,目标FORM的参数以空格分开,双引号中的是参数值。
3. 如何启用ZOOM?
有两种方式可以启用ZOOM,一种是利用CUSTOM.pll中的zoom_available函数。
另外一种方式是
APP_MENU.SET_PROP('VIEW.ZOOM', ENABLED,PROPERTY_TRUE)
。