zoukankan      html  css  js  c++  java
  • MIGO屏幕增强

    定义表ZQMT005、结构ZQMT005_BADI、表结构ZQMT005_BADI_TAB

     编辑->包括->插入

     

     se37,或者se80创建4个接口,如下图所示

     附上传参

     

     

     

     这里需要设置个变量,控制更新屏幕内容,不然会出现回车就清空内容等问题。

     

     

    在函数组中定义全局变量 

    FUNCTION-POOL zqmigo.                       "MESSAGE-ID ..

    * INCLUDE LZQMIGOD...                        " Local class definition

    TABLES:zqmt004_badi,zqmt004,zqmt005,zqmt005_badi.

    DATA:g_goaction TYPE goaction.

    DATA:g_refdoc TYPE refdoc.
    DATA:g_action TYPE action.

    SE51绘制屏幕

     

     屏幕的PBO里

     

     SE19,在MB_MIGO_BADI创建实施

     

     定义全局变量

     设置全局变量(初始化)

     

     然后是添加SE51绘制的子屏幕,

    IF_EX_MB_MIGO_BADI~PBO_DETAIL 是在MIGO下面的行项目里增加

    IF_EX_MB_MIGO_BADI~PBO_HEADER是在MIGO的抬头里增加

    这里是在PBO_DETAIL增加

    CHECK gf_class_id = i_class_id.
        CHECK i_line_id IS NOT INITIAL.
        IF g_no_input2 IS NOT INITIAL.
          e_cprog 'SAPLZQMIGO'.
          e_dynnr '9002'.
          e_heading '配置信息'.
        ENDIF.

    在IF_EX_MB_MIGO_BADI~LINE_MODIFY中行项目数据到

    表it_zqmt005_badi中,点击'签名',可以看到有全局变量cs_goitem。

     

    DATA: ls_zqmt005 TYPE zqmt005.
        DATA: ls_zqmt005_badi TYPE zqmt005_badi.
        DATA: ls_zqmt005_badi_new TYPE zqmt005_badi.

    *    IF sy-uname EQ 'IT0003'.
    *      BREAK-POINT.
    *    ENDIF.
    **工单使用的模具号
        READ TABLE it_zqmt005_badi WITH KEY global_counter = i_line_id
                                      TRANSPORTING NO FIELDS.
        IF sy-subrc 0.
    **************取屏幕中现有数据
          CLEAR: ls_zqmt005_badi_new.
          CALL FUNCTION 'ZQMIGO_ITEM_BADI_GET_DATA'
            IMPORTING
              e_output2 = ls_zqmt005_badi_new.

          IF ls_zqmt005_badi_new-global_counter = i_line_id.
    **************BADI全局变量中已存在
            DELETE it_zqmt005_badi WHERE global_counter = i_line_id.
            MOVE-CORRESPONDING cs_goitem TO ls_zqmt005_badi.
            ls_zqmt005_badi-aufnr = cs_goitem-pps_aufnr.
            ls_zqmt005_badi-plnbez = cs_goitem-matnr.
            ls_zqmt005_badi-zmatnr = ls_zqmt005_badi_new-zmatnr.
            APPEND ls_zqmt005_badi TO it_zqmt005_badi.
          ENDIF.
        ELSE.
    **************BADI全局变量中不存在
          IF NOT cs_goitem-matnr IS INITIAL.
    **************从自定义表中取数
            CLEAR: ls_zqmt005.
            SELECT SINGLE *
              FROM zqmt005
              INTO CORRESPONDING FIELDS OF ls_zqmt005
              WHERE plnbez = cs_goitem-matnr.
            IF sy-subrc 0.
              MOVE-CORRESPONDING ls_zqmt005 TO ls_zqmt005_badi_new.
            ELSE.
              MOVE-CORRESPONDING cs_goitem TO ls_zqmt005_badi_new.

          ls_zqmt005_badi_new-aufnr = cs_goitem-pps_aufnr.

          ls_zqmt005_badi_new-plnbez = cs_goitem-matnr.
            ENDIF.
          ENDIF.

          ls_zqmt005_badi_new-global_counter = i_line_id.
          ls_zqmt005_badi_new-zmatnr = ls_zqmt005_badi_new-zmatnr.
          APPEND ls_zqmt005_badi_new TO it_zqmt005_badi.
        ENDIF.

     在IF_EX_MB_MIGO_BADI~LINE_DELETE中增加删除对应行操作

    DELETE it_ZQMT005_BADI WHERE global_counter = i_line_id.

    在RESET(取消)中,清空废弃的数据。

    CLEAR: it_zqmt004_badi,it_zqmt005_badi.
        CLEAR: G_NO_INPUT,G_NO_INPUT2,
               g_cancel,g_cancel2.

     在IF_EX_MB_MIGO_BADI~POST_DOCUMENT中,将内表it_zqmt005_badi数据保存到自建表,这里也可以直接增加检查。为了区分,检查后面再加。

     在IF_EX_MB_MIGO_BADI~CHECK_ITEM中添加检查

     

     到此结束。

  • 相关阅读:
    java实现第四届蓝桥杯黄金连分数
    freemarker 取值(插值)(转)
    js获取ModelAndView值的问题
    kaptcha验证码的使用(转)
    springboot自定义错误页面(转)
    SpringBoot实战之异常处理篇
    BootstrapValidator实现注册校验和登录错误提示效果(转)
    org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported
    springmvc 通过异常增强返回给客户端统一格式
    SpringBoot-@RequestParam
  • 原文地址:https://www.cnblogs.com/chaguoguo/p/14104023.html
Copyright © 2011-2022 走看看