• OOalv 实现带出栏位描述


    1.类定义
    CLASS lcl_event_handler DEFINITION.
      PUBLIC SECTION.
        METHODS:
          handle_data_changed_finished FOR EVENT data_changed_finished OF cl_gui_alv_grid IMPORTING e_modified et_good_cells,
          handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
               IMPORTING e_object e_interactive.
    ENDCLASS.                    "lcl_event_handler DEFINITION
     
    DATA gs_toolbar  TYPE stb_button.
    *----------------------------------------------------------------------*
    *       CLASS lcl_event_handler IMPLEMENTATION
    *----------------------------------------------------------------------*
    *
    *----------------------------------------------------------------------*
    CLASS lcl_event_handler IMPLEMENTATION.
     
      METHOD handle_data_changed_finished.
        PERFORM f_data_changed_finished USING e_modified et_good_cells.
      ENDMETHOD.                    "handle_data_changed_finished
      METHOD handle_toolbar.
      ENDMETHOD.
    ENDCLASS. 
     
    2。data_changed_finished 所响应的事件
    FORM f_data_changed_finished  USING p_modified TYPE char1
                               pt_good_cells TYPE lvc_t_modi.
      DATA: w_ih_modi TYPE lvc_s_modi,
            w_ih_output TYPE typ_output.
     
      DATA: w_pernr TYPE zwmt036-pernr,
            w_zwmt036 TYPE zwmt036,
            w_zwmt035 TYPE zwmt035,
            w_zwmt126 TYPE zwmt126,
      w_t300t TYPE t300t,
      w_t30at TYPE t30at.
     
      CHECK pt_good_cells IS NOT INITIAL.
     
      CALL METHOD g_grid_9021->check_changed_data
    *  IMPORTING
    *    e_valid   =
    *  CHANGING
    *    c_refresh = 'X'
          .
     
      CLEAR flg_error.
      LOOP AT pt_good_cells INTO w_ih_modi.
        CLEAR w_ih_output.
        READ TABLE g_it_output_show INTO w_ih_output INDEX w_ih_modi-row_id.
        CASE w_ih_modi-fieldname.
          WHEN 'PERNR'.
            IF w_ih_modi-value IS INITIAL.
              IF w_ih_output-perna IS NOT INITIAL.
                CLEAR w_ih_output-perna.
                MODIFY g_it_output_show[] FROM w_ih_output INDEX w_ih_modi-row_id.
              ENDIF.
            ELSE.
              CLEAR: w_pernr,w_zwmt036.
              SELECT SINGLE *
                FROM zwmt036
                INTO w_zwmt036
                WHERE pernr = w_ih_modi-value.
              IF sy-subrc IS INITIAL.
                w_ih_output-perna = w_zwmt036-perna.
                w_ih_output-werks = w_zwmt036-werks.
                w_ih_output-lgnum = w_zwmt036-lgnum.
                w_ih_output-kqbsf = w_zwmt036-kqbsf.
                w_ih_output-kqtxt = w_zwmt036-kqtxt.
     
                IF w_ih_output-werks NE p_werks.
                  flg_error = '1'.
                ENDIF.
     
                CLEAR w_t300t.
                SELECT SINGLE *
                  FROM t300t
                  INTO w_t300t
                  WHERE spras = '1'
                  AND   lgnum = w_zwmt036-lgnum.
                w_ih_output-lnumt = w_t300t-lnumt.
     
                MODIFY g_it_output_show[] FROM w_ih_output INDEX w_ih_modi-row_id.
              ELSE.
                flg_error = '2'.
              ENDIF.
            ENDIF.
        ENDCASE.
     
      ENDLOOP.
     
      CALL METHOD g_grid_9021->refresh_table_display
    *    EXPORTING
    *      is_stable      =
    *      i_soft_refresh =
        EXCEPTIONS
          finished       = 1
          OTHERS         = 2
              .
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
     
    3.注册事件
    这一步放在,pbo创建alv的时候。
    CREATE OBJECT gcl_event_handler.
        SET HANDLER gcl_event_handler->handle_data_changed_finished  FOR g_grid_9021.
     
        CALL METHOD g_grid_9021->register_edit_event
          EXPORTING
            i_event_id = cl_gui_alv_grid=>mc_evt_modified
          EXCEPTIONS
            error      = 1
            OTHERS     = 2.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                     WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
  • 相关阅读:
    Web持久化存储Web SQL、Local Storage、Cookies(常用)
    浅谈TypeScript
    浅谈JavaScript、ES5、ES6
    AngularJS1.3一些技巧
    AngularJS学习总结
    poj-----Ultra-QuickSort(离散化+树状数组)
    HDUOJ---1241Oil Deposits(dfs)
    HDUOJ---携程员工运动会场地问题
    HDUOJ------2398Savings Account
    HDUOJ-----2399GPA
  • 原文地址:https://www.cnblogs.com/rainysblog/p/6430025.html
Copyright © 2020-2023  润新知