【ABAP】 ALV实现透明表的增删改

要求:单击菜单栏相关按钮,实现对透明表的增删改

代码部分

*&---------------------------------------------------------------------*
 *& Report ZLJH1009
 *&---------------------------------------------------------------------*
 *&
 *&---------------------------------------------------------------------*
 REPORT ZLJH1009.
 
 TABLES:ZLJH0920.
 
 DATA GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
 
 TYPES:BEGIN OF TYP_01,
  MATNR TYPE MARA-MATNR,
  CBOX  TYPE C,
  END OF TYP_01.
 
  DATA GT_OUT TYPE STANDARD TABLE OF TYP_01.
  DATA GS_OUT TYPE TYP_01.
 
  DATA GS_GRID TYPE LVC_S_GLAY.
 
  GS_GRID-EDT_CLL_CB = 'X'.
 
  GS_LAYOUT-EDIT = 'X'.
  GS_LAYOUT-BOX_FIELDNAME = 'CBOX'.
 
  SELECT *
    FROM ZLJH0920
    INTO CORRESPONDING FIELDS OF TABLE GT_OUT.
 
    call function 'REUSE_ALV_GRID_DISPLAY'
     EXPORTING
 *       I_INTERFACE_CHECK                 = ' '
 *       I_BYPASSING_BUFFER                = ' '
 *       I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = SY-CPROG
       I_CALLBACK_PF_STATUS_SET          = 'FRM_STATUS'
       I_CALLBACK_USER_COMMAND           = 'FRM_USERCOMM'
 *       I_CALLBACK_TOP_OF_PAGE            = ' '
 *       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
 *       I_CALLBACK_HTML_END_OF_LIST       = ' '
       I_STRUCTURE_NAME                  = 'ZLJH0920'
 *       I_BACKGROUND_ID                   = ' '
 *       I_GRID_TITLE                      =
       I_GRID_SETTINGS                   = GS_GRID
       IS_LAYOUT                         = GS_LAYOUT
 *       IT_FIELDCAT                       =
 *       IT_EXCLUDING                      =
 *       IT_SPECIAL_GROUPS                 =
 *       IT_SORT                           =
 *       IT_FILTER                         =
 *       IS_SEL_HIDE                       =
 *       I_DEFAULT                         = 'X'
 *       I_SAVE                            = ' '
 *       IS_VARIANT                        =
 *       IT_EVENTS                         =
 *       IT_EVENT_EXIT                     =
 *       IS_PRINT                          =
 *       IS_REPREP_ID                      =
 *       I_SCREEN_START_COLUMN             = 0
 *       I_SCREEN_START_LINE               = 0
 *       I_SCREEN_END_COLUMN               = 0
 *       I_SCREEN_END_LINE                 = 0
 *       I_HTML_HEIGHT_TOP                 = 0
 *       I_HTML_HEIGHT_END                 = 0
 *       IT_ALV_GRAPHICS                   =
 *       IT_HYPERLINK                      =
 *       IT_ADD_FIELDCAT                   =
 *       IT_EXCEPT_QINFO                   =
 *       IR_SALV_FULLSCREEN_ADAPTER        =
 *     IMPORTING
 *       E_EXIT_CAUSED_BY_CALLER           =
 *       ES_EXIT_CAUSED_BY_USER            =
      tables
        t_outtab                          = GT_OUT
 *     EXCEPTIONS
 *       PROGRAM_ERROR                     = 1
 *       OTHERS                            = 2
              .
    if sy-subrc <> 0.
 * Implement suitable error handling here
    endif.
 
 FORM FRM_STATUS USING EXTAB.
  SET PF-STATUS 'MENU'.
  ENDFORM.
 
 FORM FRM_USERCOMM USING P_UCOMM TYPE SYUCOMM
                  CHANGING SEL TYPE SLIS_SELFIELD.
  DATA LT_OUT TYPE STANDARD TABLE OF ZLJH0920.
  DATA LS_OUT TYPE ZLJH0920.
 
  CASE P_UCOMM.
    WHEN 'INS'.
      CLEAR:LT_OUT,LS_OUT.
      APPEND INITIAL LINE TO GT_OUT.
    WHEN 'DEL'.
      LOOP AT GT_OUT INTO GS_OUT WHERE CBOX = 'X'.
        MOVE-CORRESPONDING GS_OUT TO LS_OUT.
        APPEND LS_OUT TO LT_OUT.
      ENDLOOP.
      DELETE GT_OUT WHERE CBOX = 'X'.
      DELETE ZLJH0920 FROM TABLE LT_OUT.
 
    WHEN 'MOD'.
      LOOP AT GT_OUT INTO GS_OUT.
        MOVE-CORRESPONDING GS_OUT TO LS_OUT.
        APPEND LS_OUT TO LT_OUT.
      ENDLOOP.
      MODIFY ZLJH0920 FROM TABLE LT_OUT.
    WHEN 'SAVE'.
    LOOP AT GT_OUT INTO GS_OUT.
      MOVE-CORRESPONDING GS_OUT TO LS_OUT.
      APPEND LS_OUT TO LT_OUT.
    ENDLOOP.
    INSERT ZLJH0920 FROM TABLE LT_OUT ACCEPTING DUPLICATE KEYS.
  ENDCASE.
  SEL-REFRESH = 'X'.
  ENDFORM.

运行结果

【ABAP】 ALV实现透明表的增删改
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论