I have added a "save edit"button with function code 'SVE'. The function code 'switch' is to switch to editable and non-editable mode.
When i clickon 'SVE' in editable mode (upon clicking 'switch'), it should update value into database. How do i join the 'switch' event and 'SVE' event together? Which syntax to use
*&---------------------------------------------------------------------*
*& Include MZDLGPROG_03_REPORTI01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9002 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9002 INPUT.
CASE OK_CODE.
WHEN 'BACK'.
SET SCREEN 0.
LEAVE TO SCREEN 0.
WHEN 'DEL'.
GET CURSOR LINE GV_TABIX.
F1 = 1.
PERFORM FETCH_DATA.
IF F1 = 1.
DELETE ZEKKO_03 FROM TABLE GT_ZEKKO.
DELETE FROM ZEKPO_03 WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
ENDIF.
WHEN 'SVE'.
MODIFY ZEKKO_03 FROM TABLE GT_ZEKKO.
ENDCASE.
CLEAR GT_ZEKKO.
CLEAR GT_ZEKPO.
Full code and screen code as shown below:

PROGRAM SAPMZDLGPROG_03_REPORT.
TABLES: ZEKKO_03,
ZEKPO_03.
CONTROLS: TC_ZEKPO TYPE TABLEVIEW USING SCREEN 9002.
DATA : OK_CODE TYPE SY-UCOMM,
GT_ZEKKO TYPE TABLE OF ZEKKO_03,
GWA_ZEKKO TYPE ZEKKO_03,
GT_ZEKPO TYPE TABLE OF ZEKPO_03,
GWA_ZEKPO LIKE LINE OF GT_ZEKPO,
F1 TYPE CHAR1,
GV_LINES TYPE I,
GV_TABIX TYPE SY-TABIX,
ON_OFF TYPE C LENGTH 1 VALUE '0',
GV_ACTION TYPE I.
*&---------------------------------------------------------------------*
*& Include MZDLGPROG_03_REPORTO01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9001 OUTPUT.
SET PF-STATUS 'ZSTATUS'.
SET TITLEBAR 'ZTITLE'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module FETCH_DATA OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE FETCH_DATA OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
SELECT EBELN LIFNR EKORG EKGRP BUKRS WAERS ZTERM ZDESC FROM ZEKKO_03
INTO CORRESPONDING FIELDS OF TABLE GT_ZEKKO
WHERE EBELN = GWA_ZEKKO-EBELN.
SELECT SINGLE EBELN LIFNR EKORG EKGRP BUKRS WAERS ZTERM ZDESC FROM ZEKKO_03
INTO CORRESPONDING FIELDS OF GWA_ZEKKO
WHERE EBELN = GWA_ZEKKO-EBELN.
READ TABLE GT_ZEKKO INTO GWA_ZEKKO INDEX SY-TABIX.
SELECT EBELP MATNR WERKS LGORT MENGE MEINS
INTO CORRESPONDING FIELDS OF TABLE GT_ZEKPO FROM ZEKPO_03
WHERE EBELN = GWA_ZEKKO-EBELN.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module SWITCH OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE SWITCH OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
CASE OK_CODE.
WHEN 'SWITCH'.
IF ON_OFF = '0'.
GV_ACTION = 0.
ON_OFF = '1'.
ELSE.
GV_ACTION = 1.
ON_OFF = '0'.
ENDIF.
LOOP AT SCREEN.
"""header
IF SCREEN-NAME = 'GWA_ZEKKO-EKGRP'.
SCREEN-INPUT = GV_ACTION.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-EKORG'.
SCREEN-INPUT = GV_ACTION.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-BUKRS'.
SCREEN-INPUT = GV_ACTION.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-LIFNR'.
SCREEN-INPUT = GV_ACTION.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-WAERS'.
SCREEN-INPUT = GV_ACTION.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZTERM'.
SCREEN-INPUT = GV_ACTION.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZDESC'.
SCREEN-INPUT = GV_ACTION.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
"""line item
IF ( SCREEN-GROUP1 = 'GRP' ).
SCREEN-INPUT = GV_ACTION.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_9002 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9002 OUTPUT.
SET PF-STATUS 'ZSTATUS'.
SET TITLEBAR 'ZTITLE1'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module MODIFY_IT_ZEKPO INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE MODIFY_GT_ZEKPO INPUT.
MODIFY GT_ZEKPO FROM GWA_ZEKPO
INDEX TC_ZEKPO-CURRENT_LINE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Include MZDLGPROG_03_REPORTI01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9002 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9002 INPUT.
CASE OK_CODE.
WHEN 'BACK'.
SET SCREEN 0.
LEAVE TO SCREEN 0.
WHEN 'DEL'.
GET CURSOR LINE GV_TABIX.
F1 = 1.
PERFORM FETCH_DATA.
IF F1 = 1.
DELETE ZEKKO_03 FROM TABLE GT_ZEKKO.
DELETE FROM ZEKPO_03 WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
ENDIF.
WHEN 'SVE'.
MODIFY ZEKKO_03 FROM TABLE GT_ZEKKO.
ENDCASE.
CLEAR GT_ZEKKO.
CLEAR GT_ZEKPO.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9001 INPUT.
CASE OK_CODE.
WHEN 'BACK' OR 'EXIT' OR 'CANC'.
LEAVE PROGRAM.
WHEN 'DELETE' OR 'DISPLAY'.
IF GWA_ZEKKO-EBELN IS INITIAL .
MESSAGE 'Please enter document number' TYPE 'E'.
ELSE.
PERFORM FETCH_DATA.
CALL SCREEN 9002.
ENDIF.
WHEN 'EDIT' .
CALL SCREEN 9002.
WHEN 'CREATE'.
CALL SCREEN 9002.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form FETCH_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FETCH_DATA .
IF F1 NE 1.
SELECT EBELN LIFNR EKORG EKGRP BUKRS WAERS ZTERM ZDESC FROM ZEKKO_03
INTO CORRESPONDING FIELDS OF TABLE GT_ZEKKO
WHERE EBELN = GWA_ZEKKO-EBELN.
SELECT SINGLE EBELN LIFNR EKORG EKGRP BUKRS WAERS ZTERM ZDESC FROM ZEKKO_03
INTO CORRESPONDING FIELDS OF GWA_ZEKKO
WHERE EBELN = GWA_ZEKKO-EBELN.
READ TABLE GT_ZEKKO INTO GWA_ZEKKO INDEX SY-TABIX.
SELECT EBELP MATNR WERKS LGORT MENGE MEINS
INTO CORRESPONDING FIELDS OF TABLE GT_ZEKPO FROM ZEKPO_03
WHERE EBELN = GWA_ZEKKO-EBELN.
ENDIF.
ENDFORM.