zoukankan      html  css  js  c++  java
  • EBS form 之间跳转实现(form 关闭)

    实现 form CUXOMWB 使用 app_navigate.execute 打开 form CUXOEXPRAVA ;然后 FROM CUXOEXPRAVA 上点击按钮
    跳回from CUXOMWB 并重新执行查询,此时 from CUXOEXPRAVA  关闭,而且from CUXOMWB 只有一个打开的;


    实现过程来自:form APXINWKB 和 APXRMTCH
     --app_window.close_first_window;
    /* This form is closed by the trigger AP_CLOSE_MATCH_FORMS in APXINWKB
       This trigger fires because when the corresponding matching form is
       closed the global variable WHEN_FORM_NAVIGATE is set to the value of this trigger and
       a go_form call is made. When this trigger is executed, the corresponding matching 
       form needs to be closed and other  logic like requerying the distributions
       and updating the distribution total are executed. the id of the form to be closed
      is set in the global variable :GLOBAL.AP_MATCH_FORM_ID */




    FIRST :
    form CUXOEXPRAVA 上创建一些需要的参数,CUXOMWB_form_id 为必须
    form CUXOMWB 上打开 CUXOEXPRAVA 代码时传参
    /*  -- Get the form id of the invoice workbench
    l_form_id   FormModule;
        l_CUXOMWB_form_id Number;
             l_form_id        := find_form(:system.current_form);
             l_CUXOMWB_form_id := l_form_id.id;*/


    FORM CUXOMWB 上创建触发器  CUX_CLOSE_PRICE_FORMS 调用 cuxomwb.close_price_forms('CUXOEXPRAVA');


    PROCEDURE CLOSE_PRICE_FORMS(form_name VARCHAR2) IS
       form_id                    formmodule;
       l_PRICE_form_id         NUMBER;
    BEGIN
      
     l_PRICE_form_id := :global.PRICE_form_id;
       -- need to set global variables back to null as soon as possible.
       :global.when_form_navigate := NULL;
       :global.PRICE_form_id   := NULL;
       form_id.id                 := l_PRICE_form_id;
       IF id_null(form_id) THEN
          NULL;
       ELSE
          close_form(form_id);
       END IF;
    END close_price_forms;








    form  CUXOEXPRAVA 上需要关闭的地方






     PROCEDURE back_order_btn_pressed IS
        l_rect_form_id   FormModule;
       l_inv_form_id   FormModule;
     BEGIN
        l_rect_form_id := find_form(:system.current_form);
        :GLOBAL.PRICE_form_id := l_rect_form_id.id;
        :GLOBAL.WHEN_FORM_NAVIGATE := 'CUX_CLOSE_PRICE_FORMS';
         l_inv_form_id.id := :parameter.CUXOMWB_form_id; --此参数是 form CUXOMWB excute 打开 form CUXOEXPRAVA 时传过来的
        go_form(l_inv_form_id);
     
     END back_order_btn_pressed;
     
     
     form CUXOMWB 上从新执行查询
     

     在 form CUXOMWB 上触发器 when-window-actived TRIGGER 判断变量来做刷新动作



    从一个窗口导航到另一个窗口(这两个窗口都是打开的),要传递参数的话请使用WHEN–FORM–NAVIGATE,记住不要直接为这个触发器编码,而要使用全局变量来传递参数。要做到这样,请在一个自定义触发器中使用全局变量  GLOBAL.WHEN_FORM_NAVIGATE来传递参数。在使用GO_FORM这个内置过程导航到另外一个窗口时也会触发WHEN–FORM–NAVIGATE这个触发器。

     

    举例:查询某个项目(字段)

    很可能有这样的需求,导航到另外一个表单,并根据这个表单中的某个项目来查询记录。假设你现在有两个表单,一个名叫ORDERS,另一个名叫CATALOGS,现在你从ORDERS表单导航到CATALOGS表单,并要根据ORDERS表单上的一个名叫PART_NUMBER的项目来查询CATALOGS表单中的记录。解决方案如下:

    u      步骤1:在ORDERS表单中创建一个全局变量GLOBAL.PART_NUMBER,并将要查询的值赋给这个全局变量。

    u      步骤2:在ORDERS表单中创建另一个全局变量GLOBAL.WHEN_FORM_NAVIGATE,并赋值为字符串QUERY_PART_NUMBER。

    u      步骤3:在CATALOGS表单中创建一个自定义触发器QUERY_PART_NUMBER,代码中包含EXECUTE_QUERY以使导航到这个表单时执行查询。

    u      步骤4:在表单CATALOGS的PRE-QUERY触发器中编写如下代码:

    copy(’GLOBAL.PART_NUMBER, ’PARTS_BLOCK.PART_NUMBER’);

    copy(’’,’GLOBAL.PART_NUMBER’)


  • 相关阅读:
    div在父集高度未知的情况下垂直居中的方法
    固比固布局 圣杯布局 css实现传统手机app布局
    img标签的onerror事件
    vue中的swiper element ui
    前后端分离跨域 关于前后端分离开发环境下的跨域访问问题(angular proxy=>nginx )
    自己开发的网页在跳转至微信公众号文章后,点击微信的返回,无法返回原网页
    关于audio元素在实际项目中遇到的问题总结
    移动端HTML5<video>视频播放优化实践
    数据类型转换
    穿越宇宙的邀请函——镜像图片技巧
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299029.html
Copyright © 2011-2022 走看看