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. 再加一个功能,弹出请求窗口。

原文地址:https://www.cnblogs.com/Cqiang/p/3187313.html