FORM个性化——调用报表
在标准Form中提交客户化请求,通过使用Form的个性化,完全可以实现这个需求。
下面这个例子是在付款界面上打印付款申请,使用工具栏上活动--打印付款申请提交请求。
1. 首先创建菜单按钮,这个就不赘述了,触发器事件选择WHEN-NEW-FORM-INSTANCE
2. 其次,响应打印按钮 ,这里使用执行过程这个内置项来调用请求,调用的过程代码如下
PROCEDURE submit_plan_request(p_group_id IN VARCHAR2, p_vendor_id IN VARCHAR2) IS l_success BOOLEAN; l_request_number NUMBER; l_errbuf VARCHAR2(2000); e_exception EXCEPTION; BEGIN l_success := fnd_request.add_layout('XXX', 'XXXAPPAYMENT', 'zh', 'CN', 'PDF'); IF p_group_id IS NOT NULL THEN IF l_success THEN -- fnd_request.set_org_id(to_number(p_org_id)); -- 提交打印付款申请请求 l_request_number := fnd_request.submit_request('XXX', 'XXXAPPAYMENT', '', '', FALSE, p_group_id, p_vendor_id, chr(0), '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''); IF l_request_number = 0 THEN l_errbuf := 'Submit Request Failure'; RAISE e_exception; ELSE COMMIT; END IF; ELSE l_errbuf := 'Add Template Failure'; RAISE e_exception; END IF; ELSE l_errbuf := 'Please Choice Group'; RAISE e_exception; END IF; EXCEPTION WHEN e_exception THEN raise_application_error(-20002, l_errbuf); WHEN OTHERS THEN raise_application_error(-20001, SQLERRM); END;
在个性化中,添加响应按钮事件,事件触发器就是第一步中添加的菜单项了,本例中为SPECIAL30。在活动中,选择类型为内置,内置类型--执行过程,变元为
='xxx_payment_planning_rpt.submit_plan_request('''||:HEADERS.USER_GROUP_ID||''','||''''|| NULL ||''')'
这里需要特别解释一下变元,在个性化中,其实认为变元是一串字符串。这里变元可以分为两种:
第一种,不带“=”的字符串,这种方法在个性化申请后,便已经绑定了执行的语句,任何时候执行的语句都是固定的,例如变元中填写XXBG_AP_UTL.insert_log(1, 'AP_INVOICE') (注意,外层无需加''),那么在个性化申请后,我们点击菜单项的按钮永远都是执行过程XXBG_AP_UTL.insert_log(1, 'AP_INVOICE'),这种方法适合简单的执行过程。
第二种,带“=”的变元,当字符串使用了“=“,那么就代表这个字符串还包含了一些动态的参数,Form个性化申请后不绑定该字符串而是在执行时动态解析。本例中由于使用到了user_group_id,所以使用第二种方式。
3. 再加一个功能,弹出请求窗口。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步