zoukankan      html  css  js  c++  java
  • ALV

    • BATCH SELECTION
    TYPES:
    BEGIN OF TY_DATA
           SEL(1),
           B,
           C,
    END OF TY_DATA.
    
    DATA: LT_DATA TYPE TABLE OF TY_DATA,
               L_ALV_LAYOUT      TYPE SLIS_LAYOUT_ALV.
    
    
    L_ALV_LAYOUT-BOX_FIELDNAME = 'SEL'.
    
    
    
    
    
    FORM ALV_USER_COMMAND USING UCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
      DATA:REF1 TYPE REF TO CL_GUI_ALV_GRID,
           LT_ROWS TYPE LVC_T_ROW,
           LS_ROWS TYPE LINE OF LVC_T_ROW,
           LT_DATA LIKE TABLE OF IT_DATA,
           LS_DATA LIKE LINE OF IT_DATA.
    
      CASE UCOMM.
        WHEN 'RNT'.
          CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
            IMPORTING
              E_GRID = REF1.
    
          CLEAR: LS_ROWS,WA_DATA.
          REFRESH: LT_ROWS,LT_DATA.
          CALL METHOD REF1->GET_SELECTED_ROWS
            IMPORTING
              ET_INDEX_ROWS = LT_ROWS.
          IF LT_ROWS IS NOT INITIAL.
            LOOP AT LT_ROWS INTO LS_ROWS.
              CLEAR WA_DATA.
              READ TABLE IT_DATA INTO WA_DATA INDEX LS_ROWS.
              IF SY-SUBRC EQ 0.
               
    
                IF WA_DATA IS NOT INITIAL.
                  APPEND WA_DATA TO LT_DATA.
                ENDIF.
              ENDIF.
            ENDLOOP.
    
            "SORT LT_DATA BY INVNO.
            "DELETE ADJACENT DUPLICATES FROM LT_DATA COMPARING INVNO."avoid printing several times if there are many items
            PERFORM _PRINT_DATA TABLES LT_DATA.
            CLEAR: LS_ROWS,WA_DATA.
            FREE: LT_ROWS,LT_DATA.
          ENDIF.
      ENDCASE.
    ENDFORM.                    "alv_user_command
    
    
    
    ...
    
    ...
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            IS_LAYOUT                = L_ALV_LAYOUT
    
    • "Enter" Event
      CLEAR L_ALV_LAYOUT.
      L_ALV_LAYOUT-DETAIL_POPUP         = 'X'.
      L_ALV_LAYOUT-NO_VLINE             = ' '.
      L_ALV_LAYOUT-ZEBRA                = 'X'.
      L_ALV_LAYOUT-DETAIL_INITIAL_LINES = 'X'.
      L_ALV_LAYOUT-COLWIDTH_OPTIMIZE    = 'X'.
      L_ALV_LAYOUT-ALLOW_SWITCH_TO_LIST = ''.
    
    
      L_DISVARIANT-REPORT   = SY-CPROG.
      L_DISVARIANT-USERNAME = SY-UNAME.
    
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE = 0
        IMPORTING
          ET_EVENTS   = L_IT_ET_EVENTS.
    
    
      READ TABLE L_IT_ET_EVENTS
        WITH KEY NAME = SLIS_EV_USER_COMMAND
          INTO L_WA_ET_EVENTS.
      IF SY-SUBRC = 0.
        L_WA_ET_EVENTS-FORM = 'USER_COMMAND'.
        APPEND L_WA_ET_EVENTS TO L_IT_ET_EVENTS.
      ENDIF.
    
       READ TABLE L_IT_ET_EVENTS
        WITH KEY NAME = SLIS_EV_PF_STATUS_SET
          INTO L_WA_ET_EVENTS.
      IF SY-SUBRC = 0.
        L_WA_ET_EVENTS-FORM = 'STATUS'.
        APPEND L_WA_ET_EVENTS TO L_IT_ET_EVENTS.
      ENDIF.
    
      L_WA_ET_EVENTS-NAME = 'CALLER_EXIT'.
      L_WA_ET_EVENTS-FORM = 'FM_BUTTON'.
      APPEND L_WA_ET_EVENTS TO L_IT_ET_EVENTS.
    
    
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM    = SY-REPID
          IT_EVENTS             = L_IT_ET_EVENTS
          IS_LAYOUT             = L_ALV_LAYOUT
          IT_FIELDCAT           = G_IT_ALV_FIELDCAT
          IS_VARIANT            = L_DISVARIANT
        TABLES
          T_OUTTAB              = LT_DATA
    
    
    CLASS LCL_EVENT_RECEIVER DEFINITION.
      PUBLIC SECTION.
        METHODS:
          HANDLE_MODIFY
            FOR EVENT DATA_CHANGED_FINISHED OF CL_GUI_ALV_GRID
            IMPORTING E_MODIFIED ET_GOOD_CELLS.
    ENDCLASS.
    
    
    CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.
    
      METHOD  HANDLE_MODIFY.
        DATA: STBL      TYPE LVC_S_STBL,
              L_INT       TYPE STRING.
        CHECK G_IT_DATA[] <> GT_DATA_OLD[] AND SY-UCOMM NE '&DATA_SAVE'.
        LOOP AT G_IT_DATA ASSIGNING <L_DATA>.
          
        ENDLOOP.
    
    *   稳定刷新
        STBL-ROW = 'X'." 基于行的稳定刷新
        STBL-COL = 'X'." 基于列稳定刷新
        CALL METHOD TEM_GRID->REFRESH_TABLE_DISPLAY
          EXPORTING
            IS_STABLE = STBL.
      ENDMETHOD.                    "HANDLE_MODIFY
    
    ENDCLASS.
    
  • 相关阅读:
    Spring Boot JDBC 使用教程
    Spring Boot FreeMarker 使用教程
    椭圆曲线ECC ECDH原理&& javacard实现
    java中的强制类型转换:int和byte
    JUnit学习
    java异常处理
    Maven使用
    哈希表问题
    计数排序
    链表Linked List
  • 原文地址:https://www.cnblogs.com/aurora-cj/p/10843656.html
Copyright © 2011-2022 走看看