In screen 1, requirement is leave Purchase Order number blank – automatically get the next purchase order number from ZKKO_nn upon pressing Create


So far i have created 3 records for PO, 45000000, 45000003 and 45000004 from zekko database table myself.
Logically it should auto create PO from 45000001, 45000002, 45000005 and so forth.
Another requirement is in screen 2, use the same button "Save Edit" (function code - SVE) which i also used for update statement to save the created entry.
The PO data are created by myself. Full code as shown below:
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,
gv_edit TYPE c LENGTH 1,
gv_create TYPE c LENGTH 1.
*&---------------------------------------------------------------------*
*& 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 OPERATIONS OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE OPERATIONS OUTPUT.
CASE OK_CODE.
WHEN 'EDIT'.
gv_edit = 'X'.
LOOP AT SCREEN.
"""header
IF SCREEN-NAME = 'GWA_ZEKKO-EBELN'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-EKGRP'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-EKORG'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-BUKRS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-LIFNR'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-WAERS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZTERM'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZDESC'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
"""line item
IF ( SCREEN-GROUP1 = 'GRP' ).
SCREEN-INPUT = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
WHEN 'CREATE'.
gv_create = 'X'.
LOOP AT SCREEN.
"""header
IF SCREEN-NAME = 'GWA_ZEKKO-EKGRP'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-EKORG'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-BUKRS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-LIFNR'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-WAERS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZTERM'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'GWA_ZEKKO-ZDESC'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
"""line item
IF ( SCREEN-GROUP1 = 'GRP' ).
SCREEN-INPUT = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_9002 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9002 OUTPUT.
SET PF-STATUS 'ZSTATUS'.
SET TITLEBAR 'ZTITLE1'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Include MZDLGPROG_03_REPORTI01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9002 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9002 INPUT.
SET PF-STATUS 'ZSTATUS' .
SET TITLEBAR 'ZTITLE1'.
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'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_ZEKKO-EBELN
IMPORTING
OUTPUT = GWA_ZEKKO-EBELN.
if GV_EDIT EQ 'X' .
UPDATE ZEKKO_03 SET
EKGRP = GWA_ZEKKO-EKGRP
EKORG = GWA_ZEKKO-EKORG
BUKRS = GWA_ZEKKO-BUKRS
LIFNR = GWA_ZEKKO-LIFNR
WAERS = GWA_ZEKKO-WAERS
ZTERM = GWA_ZEKKO-ZTERM
ZDESC = GWA_ZEKKO-ZDESC
WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
UPDATE ZEKPO_03 SET
EBELP = GWA_ZEKPO-EBELP
MATNR = GWA_ZEKPO-MATNR
WERKS = GWA_ZEKPO-WERKS
LGORT = GWA_ZEKPO-LGORT
MENGE = GWA_ZEKPO-MENGE
MEINS = GWA_ZEKPO-MEINS
WHERE EBELN = GWA_ZEKKO-EBELN.
COMMIT WORK.
endif.
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.