ABAP ALV可编辑更新

【摘要】
*&———————————————————————*
*& REPORT Z_09_ALV02
*&———————————————————————*
*&
*&———–…

在这里插入图片描述
在这里插入图片描述

*&---------------------------------------------------------------------*
*& REPORT Z_09_ALV02
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Z_09_ALV02.

****************数据库插入数据*********************
**定义工作区
*DATA LW_ITAB TYPE ZTBC_QUOTH_09.
*DATA LW_ITAB2 TYPE ZTBC_QUOTI_09.
*
**定义表
*DATA LT_ITAB LIKE TABLE OF LW_ITAB.
*DATA LT_ITAB2 LIKE TABLE OF LW_ITAB2.
*
**清空数据库表
*DELETE FROM ZTBC_QUOTH_09.
*DELETE FROM ZTBC_QUOTI_09.
*
**循环往内表添加数据
*DO 100 TIMES.
*  LW_ITAB-OBJECT_ID = SY-INDEX.
*  LW_ITAB-PROCESS_TYPE = '1234'.
*  LW_ITAB-CREATE_AT = '20210414'.
*  LW_ITAB-CREATE_BY = SY-UNAME.
*  LW_ITAB-DESCRIPTION = 'TEST' && SY-INDEX.
*
*  LW_ITAB2-ITEM_ID = SY-INDEX.
*  LW_ITAB2-OBJECT_ID = LW_ITAB-OBJECT_ID.
*  LW_ITAB2-PRODUCT_ID = SY-INDEX.
*  LW_ITAB2-QUANTITY = SY-INDEX.
*  LW_ITAB2-UNIT = 'KG'.
*
*  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "去前导零
*  EXPORTING
* input  = LW_ITAB-OBJECT_ID
*  IMPORTING
* output = LW_ITAB-OBJECT_ID.
*
*  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "去前导零
*  EXPORTING
* input  = LW_ITAB2-OBJECT_ID
*  IMPORTING
* output = LW_ITAB2-OBJECT_ID.
*
*  INSERT LW_ITAB INTO TABLE LT_ITAB.
*
*  INSERT LW_ITAB2 INTO TABLE LT_ITAB2.
*ENDDO.
*
*
**内表数据存入数据库
*INSERT ZTBC_QUOTH_09 FROM TABLE LT_ITAB.
*IF SY-SUBRC = 0.
*  WRITE: / 'YES1'.
*ENDIF.
**内表数据存入数据库
*INSERT ZTBC_QUOTI_09 FROM TABLE LT_ITAB2.
*IF SY-SUBRC = 0.
*  WRITE: / 'YES2'.
*ENDIF.

**************************************************ALV SHOW DATA*************************************************************

**REFERENCE TYPE POOL
*TYPE-POOLS:SLIS.
*
**DEFINE THE ITERNAL TABLE REQUIRED BY ALV
*DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "THE WHOLE OF THE TABLE FIELD..FIELDCAT'S INTERNAL TABLE
* GW_FIELDCAT TYPE SLIS_FIELDCAT_ALV, "THE CONTENT OF A FIELD..FIELDCAT'S WORK AREA
* GS_LAYOUT   TYPE SLIS_LAYOUT_ALV, "ALV LAYOUT
* GT_EVENT TYPE SLIS_T_EVENT, "EVENT INTERNAL TABLE
* GW_EVENT TYPE SLIS_ALV_EVENT. "EVENT WORK AREA
*
**DEFINE INTERNAL TABLE
*TYPES: BEGIN OF TY_ITAB, "DEFINE STRUCTURE TYPE
* OBJECT_ID LIKE ZTBC_QUOTH_09-OBJECT_ID,
* PROCESS_TYPE LIKE ZTBC_QUOTH_09-PROCESS_TYPE,
* CREATE_AT LIKE ZTBC_QUOTH_09-CREATE_AT,
* CREATE_BY LIKE ZTBC_QUOTH_09-CREATE_BY,
* DESCRIPTION  LIKE ZTBC_QUOTH_09-DESCRIPTION,
* ITEM_ID LIKE ZTBC_QUOTI_09-ITEM_ID,
* PRODUCT_ID   LIKE ZTBC_QUOTI_09-PRODUCT_ID,
* QUANTITY LIKE ZTBC_QUOTI_09-QUANTITY,
* UNIT LIKE ZTBC_QUOTI_09-UNIT,
* END OF TY_ITAB.
*DATA GW_ITAB TYPE TY_ITAB. "WORK AREA
*DATA GT_ITAB LIKE TABLE OF GW_ITAB. "INTERNAL TABLE
*
*
**SELECT DATA
*SELECT
*  A~OBJECT_ID
*  A~PROCESS_TYPE
*  A~CREATE_AT
*  A~CREATE_BY
*  A~DESCRIPTION
*  B~ITEM_ID
*  B~PRODUCT_ID
*  B~QUANTITY
*  B~UNIT
*  FROM ZTBC_QUOTH_09 AS A
*  CROSS JOIN ZTBC_QUOTI_09 AS B
*  INTO CORRESPONDING FIELDS OF TABLE GT_ITAB.
*
*
**ALV FORMAT CONTROL
*GS_LAYOUT-ZEBRA = 'X'. "ZEBRA STRIPE
*GS_LAYOUT-DETAIL_POPUP = 'X'. "WHTAT IS IT ?
*GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. "AUTOMATICALLY OPTIMIZE COLUMN WIDTH
*
*GW_FIELDCAT-FIELDNAME = 'OBJECT_ID'. "THE FIELD NAME OF THE INNER TABLE TO OUTPUT
*GW_FIELDCAT-COL_POS  = '1'. "SPECIFY THE NUMBER OF COLUMNS
**GW_FIELDCAT-KEY = 'X'. "WHAT IS IT ?
*GW_FIELDCAT-DATATYPE = 'CHAR'. "
*GW_FIELDCAT-OUTPUTLEN = '10'. "OUTPUT LENGTH
*GW_FIELDCAT-SELTEXT_M = 'OBJECT_ID'. "FIELD DESCRIPTION
*APPEND GW_FIELDCAT TO GT_FIELDCAT.
*
*GW_FIELDCAT-FIELDNAME = 'PROCESS_TYPE'.
*GW_FIELDCAT-COL_POS  = '2'.
*GW_FIELDCAT-DATATYPE = 'CHAR'.
*GW_FIELDCAT-OUTPUTLEN = '4'.
*GW_FIELDCAT-SELTEXT_M = 'PROCESS_TYPE'.
*APPEND GW_FIELDCAT TO GT_FIELDCAT.
*
*GW_FIELDCAT-FIELDNAME = 'CREATE_AT'.
*GW_FIELDCAT-COL_POS  = '3'.
*GW_FIELDCAT-DATATYPE = 'DATS'.
*GW_FIELDCAT-OUTPUTLEN = '8'.
*GW_FIELDCAT-SELTEXT_M = 'CREATE_AT'.
*APPEND GW_FIELDCAT TO GT_FIELDCAT.
*
*GW_FIELDCAT-FIELDNAME = 'CEATE_BY'.
*GW_FIELDCAT-COL_POS  = '4'.
*GW_FIELDCAT-DATATYPE = 'CHAR'.
*GW_FIELDCAT-OUTPUTLEN = '10'.
*GW_FIELDCAT-SELTEXT_M = 'CREATE_BY'.
*APPEND GW_FIELDCAT TO GT_FIELDCAT.
*
*GW_FIELDCAT-FIELDNAME = 'DESCRIPTION'.
*GW_FIELDCAT-COL_POS  = '5'.
*GW_FIELDCAT-DATATYPE = 'CHAR'.
*GW_FIELDCAT-OUTPUTLEN = '40'.
*GW_FIELDCAT-SELTEXT_M = '描述'.
*APPEND GW_FIELDCAT TO GT_FIELDCAT.
*
*GW_FIELDCAT-FIELDNAME = 'ITEM_ID'.
*GW_FIELDCAT-COL_POS  = '6'.
*GW_FIELDCAT-DATATYPE = 'CHAR'.
*GW_FIELDCAT-OUTPUTLEN = '10'.
*GW_FIELDCAT-SELTEXT_M = 'ITEM_ID'.
*APPEND GW_FIELDCAT TO GT_FIELDCAT.
*
*GW_FIELDCAT-FIELDNAME = 'PRODUCT_ID'.
*GW_FIELDCAT-COL_POS  = '7'.
*GW_FIELDCAT-DATATYPE = 'CHAR'.
*GW_FIELDCAT-OUTPUTLEN = '4'.
*GW_FIELDCAT-SELTEXT_M = 'PRODUCT_ID'.
*APPEND GW_FIELDCAT TO GT_FIELDCAT.
*
*GW_FIELDCAT-FIELDNAME = 'QUANTITY'.
*GW_FIELDCAT-COL_POS  = '8'.
*GW_FIELDCAT-DATATYPE = 'QUAN'.
*GW_FIELDCAT-OUTPUTLEN = '10'.
*GW_FIELDCAT-SELTEXT_M = 'QUANTITY'.
*APPEND GW_FIELDCAT TO GT_FIELDCAT.
*
*GW_FIELDCAT-FIELDNAME = 'UNIT'.
*GW_FIELDCAT-COL_POS  = '9'.
*GW_FIELDCAT-DATATYPE = 'CHAR'.
*GW_FIELDCAT-OUTPUTLEN = '10'.
*GW_FIELDCAT-SELTEXT_M = 'UNIT'.
*APPEND GW_FIELDCAT TO GT_FIELDCAT.
*
**DEFINE EVENT
*GW_EVENT-NAME = 'TOP_OF_PAGE'."SHOW TITLE
*GW_EVENT-FORM = 'FORM_TOP_OF_PAGE'."DEFINE FORM..THIS GW_EVENT-FORM SHOULD HAVE THE SAVE NAME AS FORM
*APPEND GW_EVENT TO GT_EVENT.
*CLEAR :GW_EVENT.
*
**SHOW ALV
*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
*  EXPORTING
* I_CALLBACK_PROGRAM = SY-CPROG "CURRENT PROGRAM
* IS_LAYOUT = GS_LAYOUT
* IT_FIELDCAT = GT_FIELDCAT
* IT_EVENTS = GT_EVENT
*  TABLES
* T_OUTTAB = GT_ITAB
*  EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2.
*IF SY-SUBRC <> 0.
** IMPLEMENT SUITABLE ERROR HANDLING HERE
*ENDIF.
*
*
**FORM----TOP_OF_PAGE
*FORM FORM_TOP_OF_PAGE.
*  DATA:LT_COMMENTARY TYPE SLIS_T_LISTHEADER,
* LW_COMMENTARY TYPE  SLIS_LISTHEADER.
*
*  LW_COMMENTARY-TYP = 'H'.
*  LW_COMMENTARY-INFO = 'TABLE'.
*  APPEND LW_COMMENTARY TO LT_COMMENTARY.
*  LW_COMMENTARY-TYP = 'S'.
*  LW_COMMENTARY-INFO = 'TABLE'.
*  APPEND LW_COMMENTARY TO LT_COMMENTARY.
*  LW_COMMENTARY-TYP = 'A'.
*  LW_COMMENTARY-INFO = 'TABLE'.
*  APPEND LW_COMMENTARY TO LT_COMMENTARY.
*  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
* EXPORTING
* IT_LIST_COMMENTARY = LT_COMMENTARY
* I_LOGO = 'ENJOYSAP_LOGO'. "图片TCODEOAER
*ENDFORM.
*********************************************ENCAPSULATION FORM***********************************

*REFERENCE TYPE POOL
TYPE-POOLS:SLIS.

*DEFINE THE ITERNAL TABLE REQUIRED BY ALV
DATA: GT_FIELDCAT   TYPE SLIS_T_FIELDCAT_ALV, "THE WHOLE OF THE TABLE FIELD..FIELDCAT'S INTERNAL TABLE GW_FIELDCAT   TYPE SLIS_FIELDCAT_ALV, "THE CONTENT OF A FIELD..FIELDCAT'S WORK AREA GS_LAYOUT TYPE SLIS_LAYOUT_ALV, "ALV LAYOUT GT_EVENT TYPE SLIS_T_EVENT, "EVENT INTERNAL TABLE GW_EVENT TYPE SLIS_ALV_EVENT, "EVENT WORK AREA GT_LISTHEADER TYPE SLIS_T_LISTHEADER " .

CONSTANTS: GC_CALLBACK_STATUS TYPE SLIS_FORMNAME VALUE 'FORM_SET_STATUS', GC_CALLBACK_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'FORM_USER_COMMAND'.

*DEFINE INTERNAL TABLE
TYPES: BEGIN OF TY_ITAB, "DEFINE STRUCTURE TYPE OBJECT_ID LIKE ZTBC_QUOTH_09-OBJECT_ID, PROCESS_TYPE LIKE ZTBC_QUOTH_09-PROCESS_TYPE, CREATE_AT LIKE ZTBC_QUOTH_09-CREATE_AT, CREATE_BY LIKE ZTBC_QUOTH_09-CREATE_BY, DESCRIPTION  LIKE ZTBC_QUOTH_09-DESCRIPTION, ITEM_ID LIKE ZTBC_QUOTI_09-ITEM_ID, PRODUCT_ID   LIKE ZTBC_QUOTI_09-PRODUCT_ID, QUANTITY LIKE ZTBC_QUOTI_09-QUANTITY, UNIT LIKE ZTBC_QUOTI_09-UNIT, GV_SELECT TYPE C, END OF TY_ITAB.
DATA GW_ITAB TYPE TY_ITAB. "WORK AREA
DATA GT_ITAB LIKE TABLE OF GW_ITAB. "INTERNAL TABLE

DATA GW_ITAB_UPDATE TYPE ZTBC_QUOTH_09.
DATA GT_ITAB_UPDATE LIKE TABLE OF GW_ITAB_UPDATE. "UPDATE INTERNAL TABLE

*INITIALIZATION ALV FORMAT
INITIALIZATION.
  PERFORM LAYOUT_INIT USING GS_LAYOUT.
  PERFORM SET_ALV_HEADER USING GT_LISTHEADER[]. "SETTING ALV HEADER
  PERFORM EVENT_BUILD USING GT_EVENT[].

*GET DATA AND HANDLE DATA
START-OF-SELECTION.
  PERFORM GET_DATA TABLES GT_ITAB.
  PERFORM DISPLAY_ALV.

*SHOW DATA
END-OF-SELECTION.
*******************************FORM**************************************
*&---------------------------------------------------------------------*
*& FORM LAYOUT_INIT
*&---------------------------------------------------------------------*
*& ALV FORMAT CONTROL
*&---------------------------------------------------------------------*
*& --> GS_LAYOUT
*&---------------------------------------------------------------------*
FORM LAYOUT_INIT  USING P_GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
  P_GS_LAYOUT-ZEBRA = 'X'. "ZEBRA STRIPE
  P_GS_LAYOUT-DETAIL_POPUP = 'X'. "WHTAT IS IT ?
  P_GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. "AUTOMATICALLY OPTIMIZE COLUMN WIDTH
  P_GS_LAYOUT-BOX_FIELDNAME = 'GV_SELECT'. "
ENDFORM.

*&---------------------------------------------------------------------*
*& FORM SET_ALV_HEADER
*&---------------------------------------------------------------------*
*& SET_ALVA_HEADER
*&---------------------------------------------------------------------*
*& --> GT_LISTHEADER[]
*&---------------------------------------------------------------------*
FORM SET_ALV_HEADER  USING P_GT_LISTHEADER TYPE SLIS_T_LISTHEADER.
  DATA:LW_LISTHEADER TYPE SLIS_LISTHEADER. LW_LISTHEADER-TYP = 'H'.
  LW_LISTHEADER-INFO = 'TABLE'.
  APPEND LW_LISTHEADER TO P_GT_LISTHEADER.
  LW_LISTHEADER-TYP = 'S'.
  LW_LISTHEADER-INFO = 'TABLE'.
  APPEND LW_LISTHEADER TO P_GT_LISTHEADER.
  LW_LISTHEADER-TYP = 'A'.
  LW_LISTHEADER-INFO = 'TABLE'.
  APPEND LW_LISTHEADER TO P_GT_LISTHEADER.
ENDFORM.

*&---------------------------------------------------------------------*
*& FORM EVENT_BUILD
*&---------------------------------------------------------------------*
*& *DEFINE EVENT
*&---------------------------------------------------------------------*
*& --> GT_EVENT[]
*&---------------------------------------------------------------------*
FORM EVENT_BUILD  USING P_GT_EVENT TYPE SLIS_T_EVENT.
  GW_EVENT-NAME = 'TOP_OF_PAGE'."SHOW TITLE
  GW_EVENT-FORM = 'FORM_TOP_OF_PAGE'."DEFINE FORM..THIS GW_EVENT-FORM SHOULD HAVE THE SAVE NAME AS FORM
  APPEND GW_EVENT TO P_GT_EVENT.
  CLEAR :GW_EVENT.
ENDFORM.

*AUTO EXCUTE. GENERATE ALV HEADER
FORM FORM_TOP_OF_PAGE.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING IT_LIST_COMMENTARY = GT_LISTHEADER I_LOGO = 'ENJOYSAP_LOGO'. "图片TCODEOAER
ENDFORM.

*&---------------------------------------------------------------------*
*& FORM GET_DATA
*&---------------------------------------------------------------------*
*& SELECT DATA
*&---------------------------------------------------------------------*
*& --> GT_ITAB
*&---------------------------------------------------------------------*
FORM GET_DATA  TABLES   P_GT_ITAB.
  SELECT
  A~OBJECT_ID
  A~PROCESS_TYPE
  A~CREATE_AT
  A~CREATE_BY
  A~DESCRIPTION
  B~ITEM_ID
  B~PRODUCT_ID
  B~QUANTITY
  B~UNIT
  FROM ZTBC_QUOTH_09 AS A
  INNER JOIN ZTBC_QUOTI_09 AS B
  ON A~OBJECT_ID = B~OBJECT_ID
  INTO CORRESPONDING FIELDS OF TABLE P_GT_ITAB
  .
ENDFORM.

*&---------------------------------------------------------------------*
*& FORM DISPLAY_ALV
*&---------------------------------------------------------------------*
*& TEXT
*&---------------------------------------------------------------------*
*& -->  P1 TEXT
*& <--  P2 TEXT
*&---------------------------------------------------------------------*
FORM DISPLAY_ALV .
*SET FIELDCAT
  PERFORM SET_FIELDCAT USING 'OBJECT_ID' '1'  'OBJECT_ID' ''.
  PERFORM SET_FIELDCAT USING 'PROCESS_TYPE' '2'  'PROCESS_TYPE' ''.
  PERFORM SET_FIELDCAT USING 'CRATE_AT' '3'  'CREATE_AT' ''.
  PERFORM SET_FIELDCAT USING 'CREATE_BY' '4'  'CREATE_BY' 'X'.
  PERFORM SET_FIELDCAT USING 'DESCRIPTION'  '5'  'DESCRIPTION'  ''.
  PERFORM SET_FIELDCAT USING 'ITEM_ID' '6'  'ITEM_ID' ''.
  PERFORM SET_FIELDCAT USING 'PRODUCT_ID'   '7'  'PRODUCT_ID'   ''.
  PERFORM SET_FIELDCAT USING 'QUANTITY' '8'  'QUANTITY' ''.
  PERFORM SET_FIELDCAT USING 'UNIT' '9'  'UNIT' ''.

*SHOW ALV
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-CPROG "CURRENT PROGRAM IS_LAYOUT = GS_LAYOUT IT_FIELDCAT = GT_FIELDCAT IT_EVENTS = GT_EVENT I_CALLBACK_PF_STATUS_SET = GC_CALLBACK_STATUS "GUI STATUS I_CALLBACK_USER_COMMAND  = GC_CALLBACK_USER_COMMAND "USER COMMAND TABLES T_OUTTAB = GT_ITAB EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2.
  IF SY-SUBRC <> 0.
*IMPLEMENT SUITABLE ERROR HANDLING HERE
  ENDIF.
ENDFORM.

*&---------------------------------------------------------------------*
*& FORM SET_FIELDCAT
*&---------------------------------------------------------------------*
*& SET_FIELDCAT
*&---------------------------------------------------------------------*
*& --> P_
*&---------------------------------------------------------------------*
FORM SET_FIELDCAT  USING FIELDNAME TYPE SLIS_FIELDCAT_ALV-FIELDNAME COL_POS TYPE SLIS_FIELDCAT_ALV-COL_POS SELTEXT_M TYPE SLIS_FIELDCAT_ALV-SELTEXT_M EDIT TYPE SLIS_FIELDCAT_ALV-EDIT .
  DATA LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
  CLEAR LW_FIELDCAT. LW_FIELDCAT-FIELDNAME = FIELDNAME. "THE FIELD NAME OF THE INNER TABLE TO OUTPUT
  LW_FIELDCAT-COL_POS  = COL_POS. "SPECIFY THE NUMBER OF COLUMNS
  LW_FIELDCAT-SELTEXT_M = SELTEXT_M. "FIELD DESCRIPTION
  LW_FIELDCAT-EDIT = EDIT. "EDIT
  APPEND LW_FIELDCAT TO GT_FIELDCAT.
ENDFORM.

*&---------------------------------------------------------------------*
*& FORM FORM_SET_STATUS
*&---------------------------------------------------------------------*
*& TEXT
*&---------------------------------------------------------------------*
*& --> GS_EXTAB
*& --> TYPE
*& --> SLIS_T_EXTAB
*&---------------------------------------------------------------------*
FORM FORM_SET_STATUS USING I_IT_EXTAB TYPE SLIS_T_EXTAB. "FIXED PARAMETERS
  SET PF-STATUS 'ZDCH_09_ALV02_GUI'. "THIS VALUE SHOULD CORRESPONDING GUI STATUS BY MY SETTING
ENDFORM.

*COMMAND
*把修改后的数据传到ALV内表,然后修改数据库
FORM FORM_USER_COMMAND  USING UCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.   "FIXED PARAMETER DATA: LR_GRID TYPE REF TO CL_GUI_ALV_GRID.  "DEFINE OBJECT "TYPE REF TO用来定义一个数据对象,这个数据对象是用来指向另外的数据的; "DATA: R1 TYPE REF TO C1. "属于ABAP面向对象编程,C1是一个类,R1定义了这个类的对象 CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' "GET ALV GUI OBJECT IMPORTING E_GRID = LR_GRID. CALL METHOD LR_GRID->CHECK_CHANGED_DATA. "检查内表变化,然后把改之前的内表先复制一个,然后2个内表,改之前的,跟改之后的 SELFIELD-REFRESH = 'X'. "自动刷新,需要写在最后面,不然不会更新到内表 "处理命令行
  CASE UCOMM. WHEN 'UPDATE_OO'. FREE GT_ITAB_UPDATE. "CLEAR TABLE

* FIELD-SYMBOLS: <WA> LIKE GT_ITAB.
* LOOP AT GT_ITAB ASSIGNING <WA>.
* GT_ITAB_UPDATE-OBJECT_ID = <WA>-OBJECT_ID.
* GT_ITAB_UPDATE-PROCESS_TYPE = <WA>-PROCESS_TYPE.
* GT_ITAB_UPDATE-CREATE_BY = <WA>-CREATE_BY.
* GT_ITAB_UPDATE-CREATE_AT = <WA>-CREATE_AT.
* GT_ITAB_UPDATE-DESCRIPTION = <WA>-DESCRIPTION.
* ENDLOOP. LOOP AT GT_ITAB INTO GW_ITAB WHERE GV_SELECT = 'X'. "GET SELECTED ROW. UPDATE INNER TABLE DATA GW_ITAB_UPDATE-OBJECT_ID = GW_ITAB-OBJECT_ID. GW_ITAB_UPDATE-PROCESS_TYPE = GW_ITAB-PROCESS_TYPE. GW_ITAB_UPDATE-CREATE_BY = GW_ITAB-CREATE_BY. GW_ITAB_UPDATE-CREATE_AT = GW_ITAB-CREATE_AT. GW_ITAB_UPDATE-DESCRIPTION = GW_ITAB-DESCRIPTION. APPEND GW_ITAB_UPDATE TO GT_ITAB_UPDATE. ENDLOOP. "UPDATE ZTBC_QUOTH_09 SET: CREATE_BY = GW_ITAB_UPDATE-CREATE_BY WHERE OBJECT_ID = GW_ITAB_UPDATE-OBJECT_ID. MODIFY ZTBC_QUOTH_09 FROM TABLE GT_ITAB_UPDATE. "UPDATE DBTABLE DATA IF SY-SUBRC = 0. "SELFIELD-REFRESH = 'X'. MESSAGE '更新了' TYPE 'I'. "MESSAGE ENDIF. WHEN 'DELETE'. MESSAGE '你点击了删除按钮' TYPE 'I'.
  ENDCASE.
ENDFORM.

  
 

ALV 编辑更新

  DATA: LR_GRID TYPE REF TO CL_GUI_ALV_GRID.  "DEFINE OBJECT "TYPE REF TO用来定义一个数据对象,这个数据对象是用来指向另外的数据的; "DATA: R1 TYPE REF TO C1. "属于ABAP面向对象编程,C1是一个类,R1定义了这个类的对象 CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' "GET ALV GUI OBJECT IMPORTING E_GRID = LR_GRID. CALL METHOD LR_GRID->CHECK_CHANGED_DATA. "检查内表变化,然后把改之前的内表先复制一个,然后2个内表,改之前的,跟改之后的 SELFIELD-REFRESH = 'X'. "自动刷新,需要写在最后面,不然不会更新到内表

  
 

文章来源: blog.csdn.net,作者:丨二三丨,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_34060435/article/details/116748625

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享