<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: problem with hadling grid values in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378414#M527602</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi vamsi, &lt;/P&gt;&lt;P&gt;                 Check the code below&lt;/P&gt;&lt;P&gt;REPORT ZTEST  NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                        LINE-SIZE  200&lt;/P&gt;&lt;P&gt;                        LINE-COUNT 58&lt;/P&gt;&lt;P&gt;                        MESSAGE-ID ZZ.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               Include for Data Declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;INCLUDE ZSDR0057_DEL_HOLD_TOP.&lt;/P&gt;&lt;P&gt;INCLUDE &amp;lt;ICON&amp;gt;.&lt;/P&gt;&lt;P&gt;**Tables to Compare Before after the Data Change&lt;/P&gt;&lt;P&gt;DATA: IT_VEKP_TMP LIKE IT_VEKP OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_VEKP1 LIKE IT_VEKP OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_VEKP1_TMP LIKE IT_VEKP OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_FINAL_TMP LIKE IT_FINAL OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_OCRC TYPE TABLE OF ZSD_OC_HOLD.&lt;/P&gt;&lt;P&gt;DATA: L_VALID TYPE C,&lt;/P&gt;&lt;P&gt;      L_VALID1 TYPE C,&lt;/P&gt;&lt;P&gt;      V_FLAG,&lt;/P&gt;&lt;P&gt;      V_DATA_CHANGE.&lt;/P&gt;&lt;P&gt;DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_event_handler DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER DEFINITION .&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION .&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;**Hot spot Handler&lt;/P&gt;&lt;P&gt;    HANDLE_HOTSPOT_CLICK FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                      IMPORTING E_ROW_ID E_COLUMN_ID ES_ROW_NO,&lt;/P&gt;&lt;P&gt;**User Command Handler&lt;/P&gt;&lt;P&gt;    HANDLE_USER_COMMAND FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                                 IMPORTING E_UCOMM,&lt;/P&gt;&lt;P&gt;**Double Click Handler&lt;/P&gt;&lt;P&gt;    HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                                     IMPORTING E_ROW E_COLUMN,&lt;/P&gt;&lt;P&gt;**Handler to Check the Data Change&lt;/P&gt;&lt;P&gt;    HANDLE_DATA_CHANGED FOR EVENT DATA_CHANGED&lt;/P&gt;&lt;P&gt;                         OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                         IMPORTING ER_DATA_CHANGED&lt;/P&gt;&lt;P&gt;                                   E_ONF4&lt;/P&gt;&lt;P&gt;                                   E_ONF4_BEFORE&lt;/P&gt;&lt;P&gt;                                   E_ONF4_AFTER,&lt;/P&gt;&lt;P&gt;    HANDLE_TOOLBAR&lt;/P&gt;&lt;P&gt;        FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;            IMPORTING E_OBJECT E_INTERACTIVE.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_event_handler DEFINITION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_event_handler DEFINITION for second screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER1 DEFINITION .&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION .&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;**User Command Handler&lt;/P&gt;&lt;P&gt;    HANDLE_USER_COMMAND FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                                 IMPORTING E_UCOMM,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    HANDLE_TOOLBAR&lt;/P&gt;&lt;P&gt;        FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;            IMPORTING E_OBJECT E_INTERACTIVE.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_event_handler1 DEFINITION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_event_handler IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;*Handle Hotspot Click&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_HOTSPOT_CLICK .&lt;/P&gt;&lt;P&gt;    PERFORM HANDLE_HOTSPOT_CLICK USING E_ROW_ID E_COLUMN_ID ES_ROW_NO .&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "lcl_event_handler&lt;/P&gt;&lt;P&gt;*Handle User Command&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_USER_COMMAND.&lt;/P&gt;&lt;P&gt;    PERFORM EVENT_UCOMM USING E_UCOMM.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "user_command&lt;/P&gt;&lt;P&gt;*Handle Double Click&lt;/P&gt;&lt;P&gt;  METHOD  HANDLE_DOUBLE_CLICK.&lt;/P&gt;&lt;P&gt;    DATA X_FINAL TYPE T_FINAL.&lt;/P&gt;&lt;P&gt;    IF V_DATA_CHANGE IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF E_COLUMN = 'ZZPROMDT' OR E_COLUMN = 'ZZOCHOLDRC'.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_FINAL INDEX E_ROW INTO X_FINAL&lt;/P&gt;&lt;P&gt;                                         TRANSPORTING&lt;/P&gt;&lt;P&gt;                                         VBELN&lt;/P&gt;&lt;P&gt;                                         VGBEL&lt;/P&gt;&lt;P&gt;                                         VGPOS&lt;/P&gt;&lt;P&gt;                                         ZZPROMDT&lt;/P&gt;&lt;P&gt;                                         ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          PERFORM GET_HU_DATA USING X_FINAL.&lt;/P&gt;&lt;P&gt;          PERFORM POPULATE_FIELDCAT2.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CALL SCREEN 200.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;   MESSAGE I002 WITH 'Please save the data first and then double click'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_double_click&lt;/P&gt;&lt;P&gt;**Handle Data Change&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_DATA_CHANGED.&lt;/P&gt;&lt;P&gt;    DATA: X_CHANGE TYPE LVC_S_MODI,&lt;/P&gt;&lt;P&gt;          X_FINAL TYPE T_FINAL,&lt;/P&gt;&lt;P&gt;          X_OCRC TYPE ZSD_OC_HOLD,&lt;/P&gt;&lt;P&gt;          L_FLAG.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    LOOP AT ER_DATA_CHANGED-&amp;gt;MT_GOOD_CELLS INTO X_CHANGE.&lt;/P&gt;&lt;P&gt;      IF X_CHANGE-FIELDNAME = 'ZZOCHOLDRC'.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_FINAL INTO X_FINAL INDEX X_CHANGE-ROW_ID.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          READ TABLE IT_OCRC INTO X_OCRC WITH KEY&lt;/P&gt;&lt;P&gt;                                         ZZOCHOLDRC = X_CHANGE-VALUE&lt;/P&gt;&lt;P&gt;                                        TRANSPORTING ZZRCDESC.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;          IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;            X_FINAL-ZZRCDESC = X_OCRC-ZZRCDESC.&lt;/P&gt;&lt;P&gt;            MODIFY IT_FINAL FROM X_FINAL INDEX X_CHANGE-ROW_ID&lt;/P&gt;&lt;P&gt;                                         TRANSPORTING ZZRCDESC.&lt;/P&gt;&lt;P&gt;            L_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF X_CHANGE-FIELDNAME = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_FINAL INTO X_FINAL INDEX X_CHANGE-ROW_ID.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          X_FINAL-ZZPROMDT = X_CHANGE-VALUE.&lt;/P&gt;&lt;P&gt;          MODIFY IT_FINAL FROM X_FINAL INDEX X_CHANGE-ROW_ID&lt;/P&gt;&lt;P&gt;                                       TRANSPORTING ZZPROMDT.&lt;/P&gt;&lt;P&gt;          L_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF L_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;      CLEAR V_DATA_CHANGE.&lt;/P&gt;&lt;P&gt;      V_DATA_CHANGE = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "data_changed&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  METHOD HANDLE_TOOLBAR.&lt;/P&gt;&lt;P&gt;    DATA: LS_TOOLBAR  TYPE STB_BUTTON.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append a separator to normal toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 3 TO LS_TOOLBAR-BUTN_TYPE.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append SAVE icon&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 'SAVE' TO LS_TOOLBAR-FUNCTION.&lt;/P&gt;&lt;P&gt;    MOVE ICON_SYSTEM_SAVE TO LS_TOOLBAR-ICON.&lt;/P&gt;&lt;P&gt;    MOVE 'Save' TO LS_TOOLBAR-QUICKINFO.&lt;/P&gt;&lt;P&gt;    MOVE '  Save  '  TO LS_TOOLBAR-TEXT.&lt;/P&gt;&lt;P&gt;    MOVE ' '  TO LS_TOOLBAR-DISABLED.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append a separator to normal toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 3 TO LS_TOOLBAR-BUTN_TYPE.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append BACK icon&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 'BACK' TO LS_TOOLBAR-FUNCTION.&lt;/P&gt;&lt;P&gt;    MOVE ICON_SYSTEM_BACK TO LS_TOOLBAR-ICON.&lt;/P&gt;&lt;P&gt;    MOVE 'Back' TO LS_TOOLBAR-QUICKINFO.&lt;/P&gt;&lt;P&gt;    MOVE ' Back '  TO LS_TOOLBAR-TEXT.&lt;/P&gt;&lt;P&gt;    MOVE ' '  TO LS_TOOLBAR-DISABLED.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_toolbar&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_event_handler IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_event_handler1 IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER1 IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;*Handle User Command&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_USER_COMMAND.&lt;/P&gt;&lt;P&gt;    PERFORM EVENT_UCOMM1 USING E_UCOMM.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "user_command&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  METHOD HANDLE_TOOLBAR.&lt;/P&gt;&lt;P&gt;    DATA: LS_TOOLBAR  TYPE STB_BUTTON.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append a separator to normal toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 3 TO LS_TOOLBAR-BUTN_TYPE.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append SAVE icon&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 'SAVE' TO LS_TOOLBAR-FUNCTION.&lt;/P&gt;&lt;P&gt;    MOVE ICON_SYSTEM_SAVE TO LS_TOOLBAR-ICON.&lt;/P&gt;&lt;P&gt;    MOVE 'Save' TO LS_TOOLBAR-QUICKINFO.&lt;/P&gt;&lt;P&gt;    MOVE ' Save  '  TO LS_TOOLBAR-TEXT.&lt;/P&gt;&lt;P&gt;    MOVE ' '  TO LS_TOOLBAR-DISABLED.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append a separator to normal toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 3 TO LS_TOOLBAR-BUTN_TYPE.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append an Back icon&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 'BACK' TO LS_TOOLBAR-FUNCTION.&lt;/P&gt;&lt;P&gt;    MOVE ICON_SYSTEM_BACK TO LS_TOOLBAR-ICON.&lt;/P&gt;&lt;P&gt;    MOVE 'Back' TO LS_TOOLBAR-QUICKINFO.&lt;/P&gt;&lt;P&gt;    MOVE ' Back  '  TO LS_TOOLBAR-TEXT.&lt;/P&gt;&lt;P&gt;    MOVE ' '  TO LS_TOOLBAR-DISABLED.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_toolbar&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_event_handler1 IMPLEMENTATION&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;             Global Definitions&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: "G_GRID TYPE REF TO CL_GUI_ALV_GRID,   "Grid for first report&lt;/P&gt;&lt;P&gt;      G_GRID1 TYPE REF TO CL_GUI_ALV_GRID,  "grid for second report&lt;/P&gt;&lt;P&gt;      G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,"Container1&lt;/P&gt;&lt;P&gt;      G_CUSTOM_CONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,"container&lt;/P&gt;&lt;P&gt;      G_HANDLER TYPE REF TO LCL_EVENT_HANDLER, "handler&lt;/P&gt;&lt;P&gt;      G_HANDLER1 TYPE REF TO LCL_EVENT_HANDLER1. "handler&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA: OK_CODE LIKE SY-UCOMM,&lt;/P&gt;&lt;P&gt;      SAVE_OK LIKE SY-UCOMM,&lt;/P&gt;&lt;P&gt;      G_CONTAINER1 TYPE SCRFNAME VALUE 'ZSDR0057_DEL_HOLD_CONT1',&lt;/P&gt;&lt;P&gt;      G_CONTAINER2 TYPE SCRFNAME VALUE 'ZSDR0057_DEL_HOLD_CONT2',&lt;/P&gt;&lt;P&gt;      GS_LAYOUT TYPE LVC_S_LAYO,&lt;/P&gt;&lt;P&gt;      GS_LAYOUT1 TYPE LVC_S_LAYO.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*- Fieldcatalog for First and second Report&lt;/P&gt;&lt;P&gt;DATA: IT_FIELDCAT  TYPE  LVC_T_FCAT,&lt;/P&gt;&lt;P&gt;      X_FIELDCAT TYPE LVC_S_FCAT,&lt;/P&gt;&lt;P&gt;      IT_FIELDCAT1  TYPE  LVC_T_FCAT,&lt;/P&gt;&lt;P&gt;      X_FIELDCAT1 TYPE LVC_S_FCAT,&lt;/P&gt;&lt;P&gt;      LS_VARI  TYPE DISVARIANT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               Selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: S_VBELN FOR V_LIKP-VBELN, "Delivery&lt;/P&gt;&lt;P&gt;                S_VSTEL FOR V_LIKP-VSTEL, "Shipping Point&lt;/P&gt;&lt;P&gt;                S_WERKS FOR V_LIPS-WERKS, "Plant&lt;/P&gt;&lt;P&gt;                S_WADAT FOR V_VBEP-WADAT, "Pgi Date&lt;/P&gt;&lt;P&gt;                S_TRSPG FOR V_LIKP-TRSPG OBLIGATORY,"Shp bolck Reason&lt;/P&gt;&lt;P&gt;                S_OCHRC FOR V_VEKP-ZZOCHOLDRC MATCHCODE OBJECT&lt;/P&gt;&lt;P&gt;                                   ZZOCHOLDRC, "OC Reason Code&lt;/P&gt;&lt;P&gt;                S_USERID FOR V_VBAK-ZZREP_USERID1."Rep User ID&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               START-OF_SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CLEAR IT_LIKP.&lt;/P&gt;&lt;P&gt;  REFRESH IT_LIKP.&lt;/P&gt;&lt;P&gt;  SELECT VBELN&lt;/P&gt;&lt;P&gt;         VSTEL&lt;/P&gt;&lt;P&gt;         LFDAT&lt;/P&gt;&lt;P&gt;         KUNNR&lt;/P&gt;&lt;P&gt;         FROM LIKP&lt;/P&gt;&lt;P&gt;         INTO TABLE IT_LIKP&lt;/P&gt;&lt;P&gt;         WHERE VBELN IN S_VBELN&lt;/P&gt;&lt;P&gt;          AND  VSTEL IN S_VSTEL&lt;/P&gt;&lt;P&gt;          AND  WADAT IN S_WADAT&lt;/P&gt;&lt;P&gt;          AND  WADAT_IST = '00000000'&lt;/P&gt;&lt;P&gt;          AND TRSPG IN S_TRSPG.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    CLEAR V_FLAG.&lt;/P&gt;&lt;P&gt;    V_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF V_FLAG = ' '.&lt;/P&gt;&lt;P&gt;**Populating the Delivery Item Data&lt;/P&gt;&lt;P&gt;    PERFORM GET_DEL_ITEM_DATA.&lt;/P&gt;&lt;P&gt;**Getting the PGI DATE &amp;amp; USERID&lt;/P&gt;&lt;P&gt;    PERFORM GET_USERID.&lt;/P&gt;&lt;P&gt;**Getting the Promise DATE &amp;amp; OC HOLD RC&lt;/P&gt;&lt;P&gt;    PERFORM GET_VEKP_DATA.&lt;/P&gt;&lt;P&gt;**get the Reason codes&lt;/P&gt;&lt;P&gt;    PERFORM SELECT_OCHOLDRC.&lt;/P&gt;&lt;P&gt;    IF NOT IT_LIPS[] IS INITIAL&lt;/P&gt;&lt;P&gt;     AND  NOT IT_VBAK[] IS INITIAL&lt;/P&gt;&lt;P&gt;     AND  NOT IT_VEKP_TMP[] IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Populating the Final Internaltable&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM POPULATE_FINAL_TABLE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               END-OF-SELECTION.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  IF NOT IT_FINAL[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    CALL SCREEN 100. "Calling the First Screen&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE I002 WITH 'NO DATA FOR THE SELECTION'(004).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      MODULE PBO OUTPUT                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE PBO OUTPUT.&lt;/P&gt;&lt;P&gt;  DATA: LS_EDIT TYPE LVC_S_STYL, "to find the edit in output&lt;/P&gt;&lt;P&gt;        LT_EDIT TYPE LVC_T_STYL, "to find the edit in output&lt;/P&gt;&lt;P&gt;        V_INDEX LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;        LS_OUTTAB TYPE T_FINAL.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'MAIN100'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'MAIN100'.&lt;/P&gt;&lt;P&gt;  IF G_CUSTOM_CONTAINER IS INITIAL.&lt;/P&gt;&lt;P&gt;**Initializing the grid and calling the fm to Display the O/P&lt;/P&gt;&lt;P&gt;    PERFORM CREATE_AND_INIT_ALV.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "PBO OUTPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      MODULE PAI INPUT                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE PAI INPUT.&lt;/P&gt;&lt;P&gt;  SAVE_OK = OK_CODE.&lt;/P&gt;&lt;P&gt;  CLEAR OK_CODE.&lt;/P&gt;&lt;P&gt;  CASE SAVE_OK.&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN 'CANC'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    do nothing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "pai INPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_DEL_ITEM_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populating the Delivery Item Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_DEL_ITEM_DATA .&lt;/P&gt;&lt;P&gt;  IF NOT IT_LIKP[] IS INITIAL.&lt;/P&gt;&lt;P&gt;**-Getting the name of Ship-to-party&lt;/P&gt;&lt;P&gt;    SELECT KUNNR&lt;/P&gt;&lt;P&gt;          NAME1&lt;/P&gt;&lt;P&gt;          INTO TABLE IT_KNA1&lt;/P&gt;&lt;P&gt;          FROM KNA1&lt;/P&gt;&lt;P&gt;          FOR ALL ENTRIES IN IT_LIKP[]&lt;/P&gt;&lt;P&gt;          WHERE KUNNR = IT_LIKP-KUNNR.&lt;/P&gt;&lt;P&gt;**-Getting Delivery Item Data&lt;/P&gt;&lt;P&gt;    SELECT VBELN&lt;/P&gt;&lt;P&gt;           POSNR&lt;/P&gt;&lt;P&gt;           MATNR&lt;/P&gt;&lt;P&gt;           WERKS&lt;/P&gt;&lt;P&gt;           ARKTX&lt;/P&gt;&lt;P&gt;           VGBEL&lt;/P&gt;&lt;P&gt;           VGPOS&lt;/P&gt;&lt;P&gt;           ZZCONPATH&lt;/P&gt;&lt;P&gt;           INTO TABLE IT_LIPS&lt;/P&gt;&lt;P&gt;           FROM LIPS&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN IT_LIKP[]&lt;/P&gt;&lt;P&gt;           WHERE VBELN = IT_LIKP-VBELN&lt;/P&gt;&lt;P&gt;               AND WERKS IN S_WERKS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_DEL_ITEM_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_userid&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Getting the  USERID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_USERID .&lt;/P&gt;&lt;P&gt;  IF NOT IT_LIPS[]  IS INITIAL.&lt;/P&gt;&lt;P&gt;**-Getting the USERID&lt;/P&gt;&lt;P&gt;    SELECT VBELN&lt;/P&gt;&lt;P&gt;           ZZREP_USERID1&lt;/P&gt;&lt;P&gt;           INTO TABLE IT_VBAK&lt;/P&gt;&lt;P&gt;           FROM VBAK&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN IT_LIPS[]&lt;/P&gt;&lt;P&gt;           WHERE VBELN = IT_LIPS-VGBEL&lt;/P&gt;&lt;P&gt;              AND ZZREP_USERID1 IN S_USERID.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_userid&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  populate_final_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populating the Final Internaltable&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM POPULATE_FINAL_TABLE .&lt;/P&gt;&lt;P&gt;  DATA: L_TABIX LIKE SY-TABIX.&lt;/P&gt;&lt;P&gt;  CLEAR IT_FINAL.&lt;/P&gt;&lt;P&gt;  REFRESH IT_FINAL.&lt;/P&gt;&lt;P&gt;  SORT IT_VEKP_TMP BY ZZPROMDT ZZSONUM ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;  DATA IT_TMP LIKE IT_VEKP OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA IT_VEKP_TMP1 LIKE IT_VEKP OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  CLEAR IT_VEKP_TMP1[].&lt;/P&gt;&lt;P&gt;  IT_VEKP_TMP1[] = IT_VEKP_TMP[].&lt;/P&gt;&lt;P&gt;  LOOP AT IT_VEKP_TMP.&lt;/P&gt;&lt;P&gt;    MOVE IT_VEKP_TMP TO IT_TMP.&lt;/P&gt;&lt;P&gt;    CLEAR IT_TMP-EXIDV.&lt;/P&gt;&lt;P&gt;    COLLECT IT_TMP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  CLEAR IT_VEKP_TMP[].&lt;/P&gt;&lt;P&gt;  IT_VEKP_TMP[] =  IT_TMP[] .&lt;/P&gt;&lt;P&gt; LOOP AT IT_VEKP_TMP.&lt;/P&gt;&lt;P&gt;    L_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_VEKP_TMP1 WITH KEY INHALT = IT_VEKP_TMP-INHALT&lt;/P&gt;&lt;P&gt;                                ZZSONUM = IT_VEKP_TMP-ZZSONUM&lt;/P&gt;&lt;P&gt;                                ZZPROMDT = IT_VEKP_TMP-ZZPROMDT&lt;/P&gt;&lt;P&gt;                                ZZOCHOLDRC = IT_VEKP_TMP-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                                VEMNG = IT_VEKP_TMP-VEMNG.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      IT_VEKP_TMP-EXIDV = IT_VEKP_TMP1-EXIDV.&lt;/P&gt;&lt;P&gt;      MODIFY IT_VEKP_TMP INDEX L_TABIX.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_LIPS.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING IT_LIPS TO IT_FINAL.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_LIKP WITH KEY VBELN = IT_LIPS-VBELN.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      IT_FINAL-VSTEL = IT_LIKP-VSTEL.&lt;/P&gt;&lt;P&gt;      IT_FINAL-LFDAT = IT_LIKP-LFDAT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_KNA1 WITH KEY KUNNR = IT_LIKP-KUNNR.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      IT_FINAL-NAME1 = IT_KNA1-NAME1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_VBAK WITH KEY VBELN = IT_LIPS-VGBEL.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      IT_FINAL-ZZREP_USERID1 = IT_VBAK-ZZREP_USERID1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_SONUM WITH KEY VGBEL = IT_LIPS-VGBEL&lt;/P&gt;&lt;P&gt;                                 VGPOS = IT_LIPS-VGPOS.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      LOOP AT IT_VEKP_TMP WHERE ZZSONUM = IT_SONUM-ZZSONUM&lt;/P&gt;&lt;P&gt;                             AND INHALT = IT_LIPS-VBELN.&lt;/P&gt;&lt;P&gt;        IF NOT IT_VEKP_TMP-ZZPROMDT+0(4) = '0000'.&lt;/P&gt;&lt;P&gt;          IT_FINAL-ZZPROMDT = IT_VEKP_TMP-ZZPROMDT.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          IT_FINAL-ZZPROMDT = '00000000'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IT_FINAL-ZZOCHOLDRC = IT_VEKP_TMP-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;        IT_FINAL-VEMNG = IT_VEKP_TMP-VEMNG.&lt;/P&gt;&lt;P&gt;        IT_FINAL-ZZSONUM = IT_VEKP_TMP-ZZSONUM.&lt;/P&gt;&lt;P&gt;        IT_FINAL-EXIDV = IT_VEKP_TMP-EXIDV.&lt;/P&gt;&lt;P&gt;        APPEND IT_FINAL.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        IT_FINAL-ZZPROMDT = '00000000'.&lt;/P&gt;&lt;P&gt;        IT_FINAL-ZZOCHOLDRC = ' '.&lt;/P&gt;&lt;P&gt;        IT_FINAL-VEMNG = '  '.&lt;/P&gt;&lt;P&gt;        IT_FINAL-FLAG = 'X'.&lt;/P&gt;&lt;P&gt;        APPEND IT_FINAL.&lt;/P&gt;&lt;P&gt;        CLEAR IT_FINAL.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  DELETE IT_FINAL WHERE ZZOCHOLDRC NOT IN S_OCHRC[].&lt;/P&gt;&lt;P&gt;  DELETE IT_FINAL WHERE ZZREP_USERID1 NOT IN S_USERID[].&lt;/P&gt;&lt;P&gt;  DELETE IT_FINAL WHERE WERKS NOT IN S_WERKS[].&lt;/P&gt;&lt;P&gt;  IF NOT IT_ZSDOCHOLD[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    LOOP AT IT_FINAL.&lt;/P&gt;&lt;P&gt;      READ TABLE IT_ZSDOCHOLD WITH KEY ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        IT_FINAL-ZZRCDESC = IT_ZSDOCHOLD-ZZRCDESC.&lt;/P&gt;&lt;P&gt;        MODIFY IT_FINAL.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IT_FINAL_TMP[] = IT_FINAL[].&lt;/P&gt;&lt;P&gt;  CLEAR IT_FINAL.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " populate_final_table&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  get_vekp_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populating Promise Date and Order Control Hold Reason Code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;FORM GET_VEKP_DATA .&lt;/P&gt;&lt;P&gt;  CLEAR: IT_SONUM,IT_VEKP,IT_VEKP_TMP.&lt;/P&gt;&lt;P&gt;  REFRESH: IT_SONUM,IT_VEKP,IT_VEKP_TMP.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_LIPS.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING IT_LIPS TO IT_SONUM.&lt;/P&gt;&lt;P&gt;    CONCATENATE IT_LIPS-VGBEL IT_LIPS-VGPOS INTO IT_SONUM-ZZSONUM.&lt;/P&gt;&lt;P&gt;    APPEND IT_SONUM.&lt;/P&gt;&lt;P&gt;    CLEAR IT_SONUM.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF NOT IT_SONUM[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT EXIDV&lt;/P&gt;&lt;P&gt;           INHALT&lt;/P&gt;&lt;P&gt;           ZZSONUM&lt;/P&gt;&lt;P&gt;           ZZPROMDT&lt;/P&gt;&lt;P&gt;           ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;          INTO TABLE IT_VEKP&lt;/P&gt;&lt;P&gt;          FROM VEKP&lt;/P&gt;&lt;P&gt;          FOR ALL ENTRIES IN IT_SONUM[]&lt;/P&gt;&lt;P&gt;          WHERE ZZSONUM = IT_SONUM-ZZSONUM&lt;/P&gt;&lt;P&gt;             AND ZZOCHOLDRC IN S_OCHRC.&lt;/P&gt;&lt;P&gt;    SELECT  EXIDV INHALT VEMNG&lt;/P&gt;&lt;P&gt;            ZZSONUM&lt;/P&gt;&lt;P&gt;            INTO TABLE IT_QUANT&lt;/P&gt;&lt;P&gt;            FROM ZVEKPO&lt;/P&gt;&lt;P&gt;            FOR ALL ENTRIES IN IT_SONUM[]&lt;/P&gt;&lt;P&gt;            WHERE ZZSONUM = IT_SONUM-ZZSONUM.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      LOOP AT IT_VEKP.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_QUANT WITH KEY EXIDV = IT_VEKP-EXIDV&lt;/P&gt;&lt;P&gt;                                     INHALT = IT_VEKP-INHALT&lt;/P&gt;&lt;P&gt;                                     ZZSONUM = IT_VEKP-ZZSONUM.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          IT_VEKP-VEMNG = IT_QUANT-VEMNG.&lt;/P&gt;&lt;P&gt;          MODIFY IT_VEKP.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      IT_VEKP_TMP[] = IT_VEKP[].&lt;/P&gt;&lt;P&gt;      SELECT ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;             ZZRCDESC&lt;/P&gt;&lt;P&gt;             INTO TABLE IT_ZSDOCHOLD&lt;/P&gt;&lt;P&gt;             FROM ZSD_OC_HOLD&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN IT_VEKP[]&lt;/P&gt;&lt;P&gt;             WHERE ZZOCHOLDRC = IT_VEKP-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_vekp_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  SELECT_OCHOLDRC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Selecting the Reason Codes and Descriptions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SELECT_OCHOLDRC .&lt;/P&gt;&lt;P&gt;  SELECT *&lt;/P&gt;&lt;P&gt;         FROM ZSD_OC_HOLD&lt;/P&gt;&lt;P&gt;         INTO TABLE IT_OCRC.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " select_OCHOLDRC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  CREATE_AND_INIT_ALV&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Creating the ALV grid and initializing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CREATE_AND_INIT_ALV .&lt;/P&gt;&lt;P&gt;  DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_CUSTOM_CONTAINER&lt;/P&gt;&lt;P&gt;         EXPORTING CONTAINER_NAME = G_CONTAINER1.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_GRID&lt;/P&gt;&lt;P&gt;         EXPORTING I_PARENT = G_CUSTOM_CONTAINER.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set a titlebar for the grid control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  GS_LAYOUT-STYLEFNAME = 'HANDLE_STYLE'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-GRID_TITLE = TEXT-003.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-CWIDTH_OPT = 'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-NO_ROWMARK = 'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-ZEBRA = SPACE."'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-INFO_FNAME  = SPACE.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-CTAB_FNAME  = SPACE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;REGISTER_EDIT_EVENT&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      I_EVENT_ID = CL_GUI_ALV_GRID=&amp;gt;MC_EVT_ENTER.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_HANDLER.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER-&amp;gt;HANDLE_USER_COMMAND FOR G_GRID.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER-&amp;gt;HANDLE_DOUBLE_CLICK FOR G_GRID.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER-&amp;gt;HANDLE_HOTSPOT_CLICK FOR G_GRID.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER-&amp;gt;HANDLE_DATA_CHANGED FOR G_GRID.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER-&amp;gt;HANDLE_TOOLBAR FOR G_GRID.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;setting focus for created grid control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD CL_GUI_CONTROL=&amp;gt;SET_FOCUS&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      CONTROL = G_GRID.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build fieldcat and set editable for date and reason code&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;edit enabled. Assign a handle for the dropdown listbox.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM BUILD_FIELDCAT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Optionally restrict generic functions to 'change only'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  (The user shall not be able to add new lines).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  PERFORM DISABLE_EDIT_FIELDS.&lt;/P&gt;&lt;P&gt;**Vaiant to save the layout&lt;/P&gt;&lt;P&gt;  LS_VARI-REPORT      = SY-REPID.&lt;/P&gt;&lt;P&gt;  LS_VARI-HANDLE      = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-LOG_GROUP   = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-USERNAME    = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-VARIANT     = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-TEXT        = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-DEPENDVARS  = SPACE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Define a drop down table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM SET_DRDN_TABLE.&lt;/P&gt;&lt;P&gt;**Calling the Method for ALV output&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      IT_TOOLBAR_EXCLUDING = LT_EXCLUDE&lt;/P&gt;&lt;P&gt;      IS_VARIANT           = LS_VARI&lt;/P&gt;&lt;P&gt;      IS_LAYOUT            = GS_LAYOUT&lt;/P&gt;&lt;P&gt;      I_SAVE               = 'A'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      IT_FIELDCATALOG      = IT_FIELDCAT&lt;/P&gt;&lt;P&gt;      IT_OUTTAB            = IT_FINAL[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set editable cells to ready for input initially&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;SET_READY_FOR_INPUT&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      I_READY_FOR_INPUT = 1.&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;SET_TOOLBAR_INTERACTIVE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                               "CREATE_AND_INIT_ALV&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  EXCLUDE_TB_FUNCTIONS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Excluding the ALV functions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM EXCLUDE_TB_FUNCTIONS CHANGING PT_EXCLUDE TYPE UI_FUNCTIONS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only allow to change data not to create new entries (exclude&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;generic functions).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA LS_EXCLUDE TYPE UI_FUNC.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_COPY_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_DELETE_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_APPEND_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_INSERT_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_MOVE_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_COPY.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_CUT.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_PASTE.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_PASTE_NEW_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_UNDO.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " EXCLUDE_TB_FUNCTIONS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_fieldcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BUILD_FIELDCAT .&lt;/P&gt;&lt;P&gt;  DATA:L_POS TYPE I VALUE 1.&lt;/P&gt;&lt;P&gt;  CLEAR: L_POS.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Shpt'(012).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'VSTEL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '4'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Con Path'(013).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'ZZCONPATH'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '8'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Plant'(014).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'WERKS'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '5'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Del Date'(015).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'LFDAT'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COLTEXT = 'Prom Date'(016).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-SCRTEXT_M = 'Prom Date'(016).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EDIT = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-HOTSPOT = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  X_FIELDCAT-DATATYPE = 'DATS'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-INTTYPE = 'D'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-REF_TABLE = 'VEKP'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-REF_FIELD = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR  X_FIELDCAT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Ship-To-Name'(017).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'NAME1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '40'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'SalesOrder#'(018).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'VGBEL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Item'(019).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'VGPOS'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '5'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Material'(020).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'MATNR'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '18'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Materal Desc'(021).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'ARKTX'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '40'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'D.O.Item Qty'(022).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'VEMNG'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '13'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'RC'(023).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'ZZOCHOLDRC'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '3'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EDIT = 'X'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-DRDN_HNDL = '1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-DRDN_ALIAS = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-DRDN_FIELD = 'DROP_DOWN_HANDLE'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-SCRTEXT_M = 'OC HOLD RC Desc'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-FIELDNAME = 'ZZRCDESC'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-OUTPUTLEN = '20'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-EDIT = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR X_FIELDCAT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; L_POS = L_POS + 1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Delivery'(024).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'VBELN'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Item'(025).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'POSNR'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '5'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Rep User Id'(026).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'ZZREP_USERID1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '11'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_fieldcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_drdn_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Setting the Drop down for the Reason code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SET_DRDN_TABLE.&lt;/P&gt;&lt;P&gt;  DATA: X_OCRC LIKE LINE OF IT_OCRC.&lt;/P&gt;&lt;P&gt;  DATA:LT_DRAL TYPE LVC_T_DRAL,&lt;/P&gt;&lt;P&gt;        LS_DRAL TYPE LVC_S_DRAL,&lt;/P&gt;&lt;P&gt;        L_DRDN(25) TYPE C.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT IT_OCRC INTO X_OCRC.&lt;/P&gt;&lt;P&gt;  CONCATENATE X_OCRC-ZZOCHOLDRC ' ' ' ' ' ' X_OCRC-ZZRCDESC INTO L_DRDN&lt;/P&gt;&lt;P&gt;SEPARATED BY SPACE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;First listbox (handle '1').&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LS_DRAL-HANDLE = '1'.&lt;/P&gt;&lt;P&gt;    LS_DRAL-VALUE =  L_DRDN.&lt;/P&gt;&lt;P&gt;    LS_DRAL-INT_VALUE = X_OCRC-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;    APPEND LS_DRAL TO LT_DRAL.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;**Setting the Drop down table for Reason Code&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;SET_DROP_DOWN_TABLE&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      IT_DROP_DOWN_ALIAS = LT_DRAL.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " set_drdn_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  handle_hotspot_click&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Handling the Hotspot&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM HANDLE_HOTSPOT_CLICK USING I_ROW_ID TYPE LVC_S_ROW&lt;/P&gt;&lt;P&gt;                                I_COLUMN_ID TYPE LVC_S_COL&lt;/P&gt;&lt;P&gt;                                IS_ROW_NO TYPE LVC_S_ROID.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  READ TABLE IT_FINAL INDEX I_ROW_ID  .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    IF I_COLUMN_ID-FIELDNAME = 'VGBEL'.&lt;/P&gt;&lt;P&gt;      PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID 'AUN' FIELD IT_FINAL-VGBEL.&lt;/P&gt;&lt;P&gt;      CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;**if user clicks on Delivery&lt;/P&gt;&lt;P&gt;    IF I_COLUMN_ID-FIELDNAME = 'VBELN'.&lt;/P&gt;&lt;P&gt;      PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID 'VL' FIELD IT_FINAL-VBELN.&lt;/P&gt;&lt;P&gt;      CALL TRANSACTION 'VL02N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM .                    "handle_hotspot_click&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FORM_REFRESH for first list&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_REFRESH .&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;REFRESH_TABLE_DISPLAY&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FINISHED = 1&lt;/P&gt;&lt;P&gt;      OTHERS   = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM .                    "FORM_REFRESH&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  event_ucomm&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Handling User Commands&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM EVENT_UCOMM  USING    E_UCOMM TYPE SY-UCOMM.&lt;/P&gt;&lt;P&gt;  SORT IT_FINAL.&lt;/P&gt;&lt;P&gt;  SORT IT_FINAL_TMP.&lt;/P&gt;&lt;P&gt;  CASE E_UCOMM.&lt;/P&gt;&lt;P&gt;    WHEN 'BACK'.&lt;/P&gt;&lt;P&gt;      CALL METHOD G_GRID-&amp;gt;CHECK_CHANGED_DATA&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          E_VALID = L_VALID.&lt;/P&gt;&lt;P&gt;      CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.&lt;/P&gt;&lt;P&gt;      PERFORM BACK_OPERATION.&lt;/P&gt;&lt;P&gt;    WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;      CALL METHOD G_GRID-&amp;gt;CHECK_CHANGED_DATA&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          E_VALID = L_VALID.&lt;/P&gt;&lt;P&gt;      CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.&lt;/P&gt;&lt;P&gt;      PERFORM SAVE_OPERATION.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " event_ucomm&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  back_operation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      When User do Back operation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BACK_OPERATION .&lt;/P&gt;&lt;P&gt;**When User Press back Button&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WHEN 'BACK'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: L_ANS TYPE C,&lt;/P&gt;&lt;P&gt;        L_TABIX TYPE SY-TABIX,&lt;/P&gt;&lt;P&gt;        L_SONUM TYPE VEKP-ZZSONUM,&lt;/P&gt;&lt;P&gt;        X_OCRC LIKE LINE OF IT_OCRC.&lt;/P&gt;&lt;P&gt;**Checking for the Data Change&lt;/P&gt;&lt;P&gt;  IF IT_FINAL_TMP[] &amp;lt;&amp;gt; IT_FINAL[].&lt;/P&gt;&lt;P&gt;    PERFORM CONFIRM_BEFORE_LEAVE CHANGING L_ANS.&lt;/P&gt;&lt;P&gt;    IF L_ANS = '1' .&lt;/P&gt;&lt;P&gt;      LOOP AT IT_FINAL.&lt;/P&gt;&lt;P&gt;        L_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_FINAL_TMP INDEX L_TABIX.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC  = 0.&lt;/P&gt;&lt;P&gt;          IF IT_FINAL &amp;lt;&amp;gt; IT_FINAL_TMP.&lt;/P&gt;&lt;P&gt;*-Validate Date Field.&lt;/P&gt;&lt;P&gt;            PERFORM VALIDATE_AND_CONVERT_DATE.&lt;/P&gt;&lt;P&gt;**Modifying the VEKP table based on changes&lt;/P&gt;&lt;P&gt;            IF NOT IT_FINAL_TMP-EXIDV IS INITIAL.&lt;/P&gt;&lt;P&gt;              UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                              ZZPROMDT =  IT_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;                            WHERE EXIDV   = IT_FINAL_TMP-EXIDV&lt;/P&gt;&lt;P&gt;                         AND INHALT = IT_FINAL-VBELN.&lt;/P&gt;&lt;P&gt;              IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                COMMIT WORK AND WAIT.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                                ZZPROMDT =  IT_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;                              WHERE INHALT = IT_FINAL-VBELN&lt;/P&gt;&lt;P&gt;                           AND ZZSONUM = IT_FINAL_TMP-ZZSONUM&lt;/P&gt;&lt;P&gt;                           AND ZZPROMDT = IT_FINAL_TMP-ZZPROMDT&lt;/P&gt;&lt;P&gt;                           AND ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;              IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                COMMIT WORK AND WAIT.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    ELSEIF L_ANS = '2'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " back_operation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  CONFIRM_BEFORE_LEAVE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Popup for Confirm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CONFIRM_BEFORE_LEAVE  CHANGING P_ANS TYPE C.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'POPUP_TO_CONFIRM'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;             TITLEBAR              = 'Confirm'(007)&lt;/P&gt;&lt;P&gt;             TEXT_QUESTION = 'Do you wish to save your data first?'(006)&lt;/P&gt;&lt;P&gt;             TEXT_BUTTON_1         = 'Yes'(008)&lt;/P&gt;&lt;P&gt;             ICON_BUTTON_1         = 'ICON_OKAY'&lt;/P&gt;&lt;P&gt;             TEXT_BUTTON_2         = 'No'(010)&lt;/P&gt;&lt;P&gt;             ICON_BUTTON_2         = 'ICON_CANCEL'&lt;/P&gt;&lt;P&gt;             DEFAULT_BUTTON        = '1'&lt;/P&gt;&lt;P&gt;             DISPLAY_CANCEL_BUTTON = 'X'&lt;/P&gt;&lt;P&gt;             START_COLUMN          = 25&lt;/P&gt;&lt;P&gt;             START_ROW             = 6&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;             ANSWER                = P_ANS&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;             TEXT_NOT_FOUND        = 1&lt;/P&gt;&lt;P&gt;             OTHERS                = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " CONFIRM_BEFORE_LEAVE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  VALIDATE_AND_CONVERT_DATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Validating and Converting the date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM VALIDATE_AND_CONVERT_DATE .&lt;/P&gt;&lt;P&gt;  DATA : L_DATE LIKE SY-DATUM.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CONVERT_DATE_INPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      INPUT                     = IT_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      OUTPUT                    = L_DATE&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      PLAUSIBILITY_CHECK_FAILED = 1&lt;/P&gt;&lt;P&gt;      WRONG_FORMAT_IN_INPUT     = 2&lt;/P&gt;&lt;P&gt;      OTHERS                    = 3.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    WRITE L_DATE TO IT_FINAL-ZZPROMDT.&lt;/P&gt;&lt;P&gt;    MODIFY IT_FINAL.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " VALIDATE_AND_CONVERT_DATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  STATUS_0200  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PBO of Second List&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE STATUS_0200 OUTPUT.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'MAIN100'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'MAIN100'.&lt;/P&gt;&lt;P&gt;  IF G_CUSTOM_CONTAINER1 IS INITIAL.&lt;/P&gt;&lt;P&gt;**Initializing the second Grid&lt;/P&gt;&lt;P&gt;    PERFORM CREATE_AND_INIT_ALV1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0200  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  USER_COMMAND_0200  INPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PAI of Second list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE USER_COMMAND_0200 INPUT.&lt;/P&gt;&lt;P&gt;  DATA: L_ANS.&lt;/P&gt;&lt;P&gt;  SAVE_OK = OK_CODE.&lt;/P&gt;&lt;P&gt;  CLEAR OK_CODE.&lt;/P&gt;&lt;P&gt;  CASE SAVE_OK.&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN 'CANC'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    do nothing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_0200  INPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  CREATE_AND_INIT_ALV1&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Creating the Grid for Second List&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CREATE_AND_INIT_ALV1 .&lt;/P&gt;&lt;P&gt;  DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_CUSTOM_CONTAINER1&lt;/P&gt;&lt;P&gt;         EXPORTING CONTAINER_NAME = G_CONTAINER2.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_GRID1&lt;/P&gt;&lt;P&gt;         EXPORTING I_PARENT = G_CUSTOM_CONTAINER1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;REGISTER_EDIT_EVENT&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      I_EVENT_ID = CL_GUI_ALV_GRID=&amp;gt;MC_EVT_ENTER.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_HANDLER1.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER1-&amp;gt;HANDLE_USER_COMMAND FOR G_GRID1.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER1-&amp;gt;HANDLE_TOOLBAR FOR G_GRID1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-GRID_TITLE = TEXT-003.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-CWIDTH_OPT = 'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-NO_ROWMARK = 'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-ZEBRA = SPACE."'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-INFO_FNAME  = SPACE.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-CTAB_FNAME  = SPACE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;**Vaiant to save the layout&lt;/P&gt;&lt;P&gt;  LS_VARI-REPORT      = SY-REPID.&lt;/P&gt;&lt;P&gt;  LS_VARI-HANDLE      = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-LOG_GROUP   = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-USERNAME    = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-VARIANT     = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-TEXT        = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-DEPENDVARS  = SPACE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;setting focus for created grid control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL METHOD CL_GUI_CONTROL=&amp;gt;SET_FOCUS&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      CONTROL = G_GRID1.&lt;/P&gt;&lt;P&gt;  PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Define a drop down table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM SET_DRDN_TABLE1.&lt;/P&gt;&lt;P&gt;  PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      IT_TOOLBAR_EXCLUDING = LT_EXCLUDE&lt;/P&gt;&lt;P&gt;      IS_VARIANT           = LS_VARI&lt;/P&gt;&lt;P&gt;      I_SAVE               = 'A'&lt;/P&gt;&lt;P&gt;      IS_LAYOUT            = GS_LAYOUT1&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      IT_FIELDCATALOG      = IT_FIELDCAT1&lt;/P&gt;&lt;P&gt;      IT_OUTTAB            = IT_VEKP1[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Set editable cells to ready for input initially&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;SET_READY_FOR_INPUT&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      I_READY_FOR_INPUT = 1.&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;SET_TOOLBAR_INTERACTIVE.&lt;/P&gt;&lt;P&gt;ENDFORM.                               "CREATE_AND_INIT_ALV1&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_HU_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get Handling Units Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_HU_DATA USING X_FINAL TYPE T_FINAL.&lt;/P&gt;&lt;P&gt;  CLEAR IT_VEKP1.&lt;/P&gt;&lt;P&gt;  REFRESH IT_VEKP1.&lt;/P&gt;&lt;P&gt;  READ TABLE IT_SONUM WITH KEY VGBEL = X_FINAL-VGBEL&lt;/P&gt;&lt;P&gt;                               VGPOS = X_FINAL-VGPOS.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    LOOP AT IT_VEKP WHERE  INHALT = X_FINAL-VBELN&lt;/P&gt;&lt;P&gt;                     AND     ZZSONUM = IT_SONUM-ZZSONUM&lt;/P&gt;&lt;P&gt;                     AND  ZZPROMDT  = X_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;                     AND  ZZOCHOLDRC = X_FINAL-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;      IT_VEKP1-EXIDV  = IT_VEKP-EXIDV.&lt;/P&gt;&lt;P&gt;      IT_VEKP1-ZZSONUM = IT_VEKP-ZZSONUM.&lt;/P&gt;&lt;P&gt;      IF NOT IT_VEKP-ZZPROMDT+0(4) = '0000'.&lt;/P&gt;&lt;P&gt;        IT_VEKP1-ZZPROMDT = IT_VEKP-ZZPROMDT.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        IT_VEKP1-ZZPROMDT = '00000000'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IT_VEKP1-ZZOCHOLDRC = IT_VEKP-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;      APPEND IT_VEKP1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IT_VEKP1_TMP[] = IT_VEKP1[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_HU_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  POPULATE_FIELDCAT2&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populating the Field Catalog for Second list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM POPULATE_FIELDCAT2 .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR: IT_FIELDCAT1,X_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  REFRESH IT_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  DATA:L_POS TYPE I VALUE 1.&lt;/P&gt;&lt;P&gt;  CLEAR: L_POS.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-SCRTEXT_M = 'External Handling Unit Identification'(027).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-FIELDNAME = 'EXIDV'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-EDIT = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT1-SCRTEXT_M = 'Prom Date'(016).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  X_FIELDCAT1-COLTEXT = 'Promise Date'(033).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-FIELDNAME = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-OUTPUTLEN = '12'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-EDIT = 'X'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-DATATYPE = 'DATS'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-INTTYPE = 'D'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-REF_TABLE = 'VEKP'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-REF_FIELD = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  CLEAR  X_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-SCRTEXT_M = 'Order Control Hold Reason Code'(029).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-FIELDNAME = 'ZZOCHOLDRC'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-DRDN_HNDL = '1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-DRDN_ALIAS = 'X'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-EDIT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " POPULATE_FIELDCAT2&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_drdn_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Drop Down for second report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SET_DRDN_TABLE1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA:X_OCRC LIKE LINE OF IT_OCRC.&lt;/P&gt;&lt;P&gt;  DATA:LT_DRAL TYPE LVC_T_DRAL,&lt;/P&gt;&lt;P&gt;        LS_DRAL TYPE LVC_S_DRAL,&lt;/P&gt;&lt;P&gt;        L_DRDN(25) TYPE C.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT IT_OCRC INTO X_OCRC.&lt;/P&gt;&lt;P&gt;    CONCATENATE X_OCRC-ZZOCHOLDRC '  ' ' ' '  '  X_OCRC-ZZRCDESC INTO&lt;/P&gt;&lt;P&gt;  L_DRDN&lt;/P&gt;&lt;P&gt;  SEPARATED BY SPACE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;First listbox (handle '1').&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LS_DRAL-HANDLE = '1'.&lt;/P&gt;&lt;P&gt;    LS_DRAL-VALUE =  L_DRDN.&lt;/P&gt;&lt;P&gt;    LS_DRAL-INT_VALUE = X_OCRC-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;    APPEND LS_DRAL TO LT_DRAL.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;SET_DROP_DOWN_TABLE&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      IT_DROP_DOWN_ALIAS = LT_DRAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                               " set_drdn_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  save_operation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Saving the changes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SAVE_OPERATION .&lt;/P&gt;&lt;P&gt;  DATA: L_TABIX LIKE SY-TABIX.&lt;/P&gt;&lt;P&gt;**CHECKING FOR THE DATA CHANGE&lt;/P&gt;&lt;P&gt;  IF IT_FINAL_TMP[] &amp;lt;&amp;gt; IT_FINAL[].&lt;/P&gt;&lt;P&gt;    LOOP AT IT_FINAL.&lt;/P&gt;&lt;P&gt;      L_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;      READ TABLE IT_FINAL_TMP INDEX L_TABIX.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC  = 0.&lt;/P&gt;&lt;P&gt;        IF IT_FINAL &amp;lt;&amp;gt; IT_FINAL_TMP.&lt;/P&gt;&lt;P&gt;*-Validate Date Field.&lt;/P&gt;&lt;P&gt;          PERFORM VALIDATE_AND_CONVERT_DATE.&lt;/P&gt;&lt;P&gt;**Modifying the VEKP table based on changes&lt;/P&gt;&lt;P&gt;          IF NOT IT_FINAL_TMP-EXIDV IS INITIAL.&lt;/P&gt;&lt;P&gt;            UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                            ZZPROMDT =  IT_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;                          WHERE EXIDV   = IT_FINAL_TMP-EXIDV&lt;/P&gt;&lt;P&gt;                       AND INHALT = IT_FINAL-VBELN.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;              V_DATA_CHANGE = ' '.&lt;/P&gt;&lt;P&gt;              COMMIT WORK AND WAIT.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                                ZZPROMDT =  IT_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;                              WHERE INHALT = IT_FINAL-VBELN&lt;/P&gt;&lt;P&gt;                           AND ZZSONUM = IT_FINAL_TMP-ZZSONUM&lt;/P&gt;&lt;P&gt;                           AND ZZPROMDT = IT_FINAL_TMP-ZZPROMDT&lt;/P&gt;&lt;P&gt;                           AND ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;              V_DATA_CHANGE = ' '.&lt;/P&gt;&lt;P&gt;              COMMIT WORK AND WAIT.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    PERFORM GET_VEKP_DATA .&lt;/P&gt;&lt;P&gt;    PERFORM POPULATE_FINAL_TABLE.&lt;/P&gt;&lt;P&gt;    PERFORM DISABLE_EDIT_FIELDS.&lt;/P&gt;&lt;P&gt;    PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;    MESSAGE S002 WITH 'Data Saved'(011).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " save_operation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BACK_SECOND_LIST&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      When User Press Back in Second list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BACK_SECOND_LIST .&lt;/P&gt;&lt;P&gt;  DATA:X_OCRC LIKE LINE OF IT_OCRC.&lt;/P&gt;&lt;P&gt;**Checking for the Change in the data&lt;/P&gt;&lt;P&gt;  IF IT_VEKP1_TMP[] &amp;lt;&amp;gt; IT_VEKP1[].&lt;/P&gt;&lt;P&gt;    PERFORM CONFIRM_BEFORE_LEAVE CHANGING L_ANS.&lt;/P&gt;&lt;P&gt;    IF L_ANS = '1'.&lt;/P&gt;&lt;P&gt;      LOOP AT IT_VEKP1.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_VEKP1_TMP WITH KEY EXIDV = IT_VEKP1-EXIDV.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          IF IT_VEKP1_TMP &amp;lt;&amp;gt; IT_VEKP1.&lt;/P&gt;&lt;P&gt;            UPDATE VEKP SET ZZPROMDT = IT_VEKP1-ZZPROMDT&lt;/P&gt;&lt;P&gt;                            ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                          WHERE EXIDV = IT_VEKP1-EXIDV.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;              COMMIT WORK.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      PERFORM GET_VEKP_DATA .&lt;/P&gt;&lt;P&gt;      CLEAR IT_VEKP1_TMP.&lt;/P&gt;&lt;P&gt;      REFRESH IT_VEKP1_TMP.&lt;/P&gt;&lt;P&gt;      IT_VEKP1_TMP[] = IT_VEKP1[].&lt;/P&gt;&lt;P&gt;      PERFORM POPULATE_FINAL_TABLE.&lt;/P&gt;&lt;P&gt;      PERFORM DISABLE_EDIT_FIELDS.&lt;/P&gt;&lt;P&gt;      PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;      MESSAGE S002 WITH 'Data Saved'(011).&lt;/P&gt;&lt;P&gt;      PERFORM CLEAR_GRID_CONTAINER.&lt;/P&gt;&lt;P&gt;    ELSEIF L_ANS = '2'.&lt;/P&gt;&lt;P&gt;      PERFORM CLEAR_GRID_CONTAINER.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM CLEAR_GRID_CONTAINER.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BACK_SECOND_LIST&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  clear_grid_container&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Clearing the Grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CLEAR_GRID_CONTAINER .&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;FREE.&lt;/P&gt;&lt;P&gt;  CALL METHOD G_CUSTOM_CONTAINER1-&amp;gt;FREE.&lt;/P&gt;&lt;P&gt;  CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.&lt;/P&gt;&lt;P&gt;  CLEAR G_CUSTOM_CONTAINER1.&lt;/P&gt;&lt;P&gt;  CLEAR G_GRID1.&lt;/P&gt;&lt;P&gt;  CLEAR G_HANDLER1.&lt;/P&gt;&lt;P&gt;  LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " clear_grid_container&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  disable_edit_fields&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Disable edit fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM DISABLE_EDIT_FIELDS .&lt;/P&gt;&lt;P&gt;**Changing the Edit option for the records which they don't have&lt;/P&gt;&lt;P&gt;**Entries in HU level&lt;/P&gt;&lt;P&gt;  LOOP AT IT_FINAL INTO LS_OUTTAB WHERE FLAG = 'X'.&lt;/P&gt;&lt;P&gt;    V_INDEX = SY-TABIX.&lt;/P&gt;&lt;P&gt;    LS_EDIT-FIELDNAME = 'ZZOCHOLDRC'.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE = CL_GUI_ALV_GRID=&amp;gt;MC_STYLE_DISABLED.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE2 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE3 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE4 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-MAXLEN = 8.&lt;/P&gt;&lt;P&gt;    INSERT LS_EDIT INTO TABLE LT_EDIT.&lt;/P&gt;&lt;P&gt;    LS_EDIT-FIELDNAME = 'ZZRCDESC'.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE = CL_GUI_ALV_GRID=&amp;gt;MC_STYLE_DISABLED.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE2 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE3 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE4 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-MAXLEN = 8.&lt;/P&gt;&lt;P&gt;    INSERT LS_EDIT INTO TABLE LT_EDIT.&lt;/P&gt;&lt;P&gt;    LS_EDIT-FIELDNAME = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE = CL_GUI_ALV_GRID=&amp;gt;MC_STYLE_DISABLED.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE2 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE3 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE4 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-MAXLEN = 8.&lt;/P&gt;&lt;P&gt;    INSERT LS_EDIT INTO TABLE LT_EDIT.&lt;/P&gt;&lt;P&gt;    INSERT LINES OF LT_EDIT INTO TABLE LS_OUTTAB-HANDLE_STYLE.&lt;/P&gt;&lt;P&gt;    MODIFY IT_FINAL INDEX V_INDEX FROM LS_OUTTAB  TRANSPORTING&lt;/P&gt;&lt;P&gt;                                      HANDLE_STYLE DROP_DOWN_HANDLE.&lt;/P&gt;&lt;P&gt;    MODIFY IT_FINAL_TMP INDEX V_INDEX FROM LS_OUTTAB  TRANSPORTING&lt;/P&gt;&lt;P&gt;                                     HANDLE_STYLE DROP_DOWN_HANDLE.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " disable_edit_fields&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  event_ucomm&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Handling User Commands&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM EVENT_UCOMM1  USING    E_UCOMM TYPE SY-UCOMM.&lt;/P&gt;&lt;P&gt;  SORT IT_VEKP1.&lt;/P&gt;&lt;P&gt;  SORT IT_VEKP1_TMP.&lt;/P&gt;&lt;P&gt;  CASE E_UCOMM.&lt;/P&gt;&lt;P&gt;      WHEN'BACK'.&lt;/P&gt;&lt;P&gt;**Checking for the change in the data of the output&lt;/P&gt;&lt;P&gt;      CALL METHOD G_GRID1-&amp;gt;CHECK_CHANGED_DATA&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          E_VALID = L_VALID1.&lt;/P&gt;&lt;P&gt;      CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.&lt;/P&gt;&lt;P&gt;      PERFORM BACK_SECOND_LIST.&lt;/P&gt;&lt;P&gt;    WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;      CALL METHOD G_GRID1-&amp;gt;CHECK_CHANGED_DATA&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          E_VALID = L_VALID1.&lt;/P&gt;&lt;P&gt;      CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.&lt;/P&gt;&lt;P&gt;**Checking for the Change in the data&lt;/P&gt;&lt;P&gt;      IF IT_VEKP1_TMP[] &amp;lt;&amp;gt; IT_VEKP1[].&lt;/P&gt;&lt;P&gt;        LOOP AT IT_VEKP1.&lt;/P&gt;&lt;P&gt;          READ TABLE IT_VEKP1_TMP WITH KEY EXIDV = IT_VEKP1-EXIDV.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;            IF IT_VEKP1_TMP &amp;lt;&amp;gt; IT_VEKP1.&lt;/P&gt;&lt;P&gt;              UPDATE VEKP SET ZZPROMDT = IT_VEKP1-ZZPROMDT&lt;/P&gt;&lt;P&gt;                              ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                            WHERE EXIDV = IT_VEKP1-EXIDV.&lt;/P&gt;&lt;P&gt;              IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                COMMIT WORK.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;        PERFORM GET_VEKP_DATA .&lt;/P&gt;&lt;P&gt;        CLEAR IT_VEKP1_TMP.&lt;/P&gt;&lt;P&gt;        REFRESH IT_VEKP1_TMP.&lt;/P&gt;&lt;P&gt;        IT_VEKP1_TMP[] = IT_VEKP1[].&lt;/P&gt;&lt;P&gt;        PERFORM POPULATE_FINAL_TABLE.&lt;/P&gt;&lt;P&gt;        PERFORM DISABLE_EDIT_FIELDS.&lt;/P&gt;&lt;P&gt;        PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;        MESSAGE S002 WITH 'Data Saved'(011).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    do nothing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " event_ucomm1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Kiran Sure&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 01 Jun 2007 11:19:44 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-01T11:19:44Z</dc:date>
    <item>
      <title>problem with hadling grid values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378410#M527598</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i am working with AlV grid where one of my field (quantity) is editable for changes.&lt;/P&gt;&lt;P&gt;once he done with the changes he will press one of the button in the screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;with all the data in my screen my program should update few Z tables  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;to capture these changes i am using method 'check_changed_data'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;now say my original quantity is 100.000&lt;/P&gt;&lt;P&gt;and i am changing it to 2xy.000 (this is some scrap data)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;an error message is coming like quantity is not numeric&lt;/P&gt;&lt;P&gt;but  this error is handled in the 'check_changed_data' method.&lt;/P&gt;&lt;P&gt;i cant go and change this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;after displaying the error message my program is going and updating the ztable with the original quantity i.e. 100. which should not happen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can any one tell me how to handle this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vamsi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jun 2007 10:37:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378410#M527598</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-01T10:37:11Z</dc:date>
    </item>
    <item>
      <title>Re: problem with hadling grid values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378411#M527599</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;put a condition/check before updateing means before u r calling the fm for non numerice data.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jun 2007 10:44:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378411#M527599</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-01T10:44:18Z</dc:date>
    </item>
    <item>
      <title>Re: problem with hadling grid values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378412#M527600</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'check_changed_data'  this method only informs about whether data has changed in the grid or not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check for the field specifications&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jun 2007 10:44:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378412#M527600</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-01T10:44:49Z</dc:date>
    </item>
    <item>
      <title>Re: problem with hadling grid values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378413#M527601</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Vamsi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you need to validate the editable values simply define an event handler method for event DATA_CHANGED. Method go_grid-&amp;gt;check_changed_data will fire this event if data have indeed been changed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ALV grid refuses to update your internal table with wrong data. Thus, the changes on the editable grid are not transferred to your internal table. Now you could save a "PBO image" and a "PAI image" (e.g. using gt_data_pbo  and gt_data) of your data and compare them before saving the data to the database. If there are no changes send an appropriate message to the user.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jun 2007 10:53:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378413#M527601</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-06-01T10:53:13Z</dc:date>
    </item>
    <item>
      <title>Re: problem with hadling grid values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378414#M527602</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi vamsi, &lt;/P&gt;&lt;P&gt;                 Check the code below&lt;/P&gt;&lt;P&gt;REPORT ZTEST  NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                        LINE-SIZE  200&lt;/P&gt;&lt;P&gt;                        LINE-COUNT 58&lt;/P&gt;&lt;P&gt;                        MESSAGE-ID ZZ.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               Include for Data Declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;INCLUDE ZSDR0057_DEL_HOLD_TOP.&lt;/P&gt;&lt;P&gt;INCLUDE &amp;lt;ICON&amp;gt;.&lt;/P&gt;&lt;P&gt;**Tables to Compare Before after the Data Change&lt;/P&gt;&lt;P&gt;DATA: IT_VEKP_TMP LIKE IT_VEKP OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_VEKP1 LIKE IT_VEKP OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_VEKP1_TMP LIKE IT_VEKP OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_FINAL_TMP LIKE IT_FINAL OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_OCRC TYPE TABLE OF ZSD_OC_HOLD.&lt;/P&gt;&lt;P&gt;DATA: L_VALID TYPE C,&lt;/P&gt;&lt;P&gt;      L_VALID1 TYPE C,&lt;/P&gt;&lt;P&gt;      V_FLAG,&lt;/P&gt;&lt;P&gt;      V_DATA_CHANGE.&lt;/P&gt;&lt;P&gt;DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_event_handler DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER DEFINITION .&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION .&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;**Hot spot Handler&lt;/P&gt;&lt;P&gt;    HANDLE_HOTSPOT_CLICK FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                      IMPORTING E_ROW_ID E_COLUMN_ID ES_ROW_NO,&lt;/P&gt;&lt;P&gt;**User Command Handler&lt;/P&gt;&lt;P&gt;    HANDLE_USER_COMMAND FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                                 IMPORTING E_UCOMM,&lt;/P&gt;&lt;P&gt;**Double Click Handler&lt;/P&gt;&lt;P&gt;    HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                                     IMPORTING E_ROW E_COLUMN,&lt;/P&gt;&lt;P&gt;**Handler to Check the Data Change&lt;/P&gt;&lt;P&gt;    HANDLE_DATA_CHANGED FOR EVENT DATA_CHANGED&lt;/P&gt;&lt;P&gt;                         OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                         IMPORTING ER_DATA_CHANGED&lt;/P&gt;&lt;P&gt;                                   E_ONF4&lt;/P&gt;&lt;P&gt;                                   E_ONF4_BEFORE&lt;/P&gt;&lt;P&gt;                                   E_ONF4_AFTER,&lt;/P&gt;&lt;P&gt;    HANDLE_TOOLBAR&lt;/P&gt;&lt;P&gt;        FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;            IMPORTING E_OBJECT E_INTERACTIVE.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_event_handler DEFINITION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_event_handler DEFINITION for second screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER1 DEFINITION .&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION .&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;**User Command Handler&lt;/P&gt;&lt;P&gt;    HANDLE_USER_COMMAND FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                                 IMPORTING E_UCOMM,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    HANDLE_TOOLBAR&lt;/P&gt;&lt;P&gt;        FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;            IMPORTING E_OBJECT E_INTERACTIVE.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_event_handler1 DEFINITION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_event_handler IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;*Handle Hotspot Click&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_HOTSPOT_CLICK .&lt;/P&gt;&lt;P&gt;    PERFORM HANDLE_HOTSPOT_CLICK USING E_ROW_ID E_COLUMN_ID ES_ROW_NO .&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "lcl_event_handler&lt;/P&gt;&lt;P&gt;*Handle User Command&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_USER_COMMAND.&lt;/P&gt;&lt;P&gt;    PERFORM EVENT_UCOMM USING E_UCOMM.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "user_command&lt;/P&gt;&lt;P&gt;*Handle Double Click&lt;/P&gt;&lt;P&gt;  METHOD  HANDLE_DOUBLE_CLICK.&lt;/P&gt;&lt;P&gt;    DATA X_FINAL TYPE T_FINAL.&lt;/P&gt;&lt;P&gt;    IF V_DATA_CHANGE IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF E_COLUMN = 'ZZPROMDT' OR E_COLUMN = 'ZZOCHOLDRC'.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_FINAL INDEX E_ROW INTO X_FINAL&lt;/P&gt;&lt;P&gt;                                         TRANSPORTING&lt;/P&gt;&lt;P&gt;                                         VBELN&lt;/P&gt;&lt;P&gt;                                         VGBEL&lt;/P&gt;&lt;P&gt;                                         VGPOS&lt;/P&gt;&lt;P&gt;                                         ZZPROMDT&lt;/P&gt;&lt;P&gt;                                         ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          PERFORM GET_HU_DATA USING X_FINAL.&lt;/P&gt;&lt;P&gt;          PERFORM POPULATE_FIELDCAT2.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CALL SCREEN 200.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;   MESSAGE I002 WITH 'Please save the data first and then double click'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_double_click&lt;/P&gt;&lt;P&gt;**Handle Data Change&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_DATA_CHANGED.&lt;/P&gt;&lt;P&gt;    DATA: X_CHANGE TYPE LVC_S_MODI,&lt;/P&gt;&lt;P&gt;          X_FINAL TYPE T_FINAL,&lt;/P&gt;&lt;P&gt;          X_OCRC TYPE ZSD_OC_HOLD,&lt;/P&gt;&lt;P&gt;          L_FLAG.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    LOOP AT ER_DATA_CHANGED-&amp;gt;MT_GOOD_CELLS INTO X_CHANGE.&lt;/P&gt;&lt;P&gt;      IF X_CHANGE-FIELDNAME = 'ZZOCHOLDRC'.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_FINAL INTO X_FINAL INDEX X_CHANGE-ROW_ID.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          READ TABLE IT_OCRC INTO X_OCRC WITH KEY&lt;/P&gt;&lt;P&gt;                                         ZZOCHOLDRC = X_CHANGE-VALUE&lt;/P&gt;&lt;P&gt;                                        TRANSPORTING ZZRCDESC.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;          IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;            X_FINAL-ZZRCDESC = X_OCRC-ZZRCDESC.&lt;/P&gt;&lt;P&gt;            MODIFY IT_FINAL FROM X_FINAL INDEX X_CHANGE-ROW_ID&lt;/P&gt;&lt;P&gt;                                         TRANSPORTING ZZRCDESC.&lt;/P&gt;&lt;P&gt;            L_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF X_CHANGE-FIELDNAME = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_FINAL INTO X_FINAL INDEX X_CHANGE-ROW_ID.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          X_FINAL-ZZPROMDT = X_CHANGE-VALUE.&lt;/P&gt;&lt;P&gt;          MODIFY IT_FINAL FROM X_FINAL INDEX X_CHANGE-ROW_ID&lt;/P&gt;&lt;P&gt;                                       TRANSPORTING ZZPROMDT.&lt;/P&gt;&lt;P&gt;          L_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF L_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;      CLEAR V_DATA_CHANGE.&lt;/P&gt;&lt;P&gt;      V_DATA_CHANGE = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "data_changed&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  METHOD HANDLE_TOOLBAR.&lt;/P&gt;&lt;P&gt;    DATA: LS_TOOLBAR  TYPE STB_BUTTON.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append a separator to normal toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 3 TO LS_TOOLBAR-BUTN_TYPE.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append SAVE icon&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 'SAVE' TO LS_TOOLBAR-FUNCTION.&lt;/P&gt;&lt;P&gt;    MOVE ICON_SYSTEM_SAVE TO LS_TOOLBAR-ICON.&lt;/P&gt;&lt;P&gt;    MOVE 'Save' TO LS_TOOLBAR-QUICKINFO.&lt;/P&gt;&lt;P&gt;    MOVE '  Save  '  TO LS_TOOLBAR-TEXT.&lt;/P&gt;&lt;P&gt;    MOVE ' '  TO LS_TOOLBAR-DISABLED.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append a separator to normal toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 3 TO LS_TOOLBAR-BUTN_TYPE.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append BACK icon&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 'BACK' TO LS_TOOLBAR-FUNCTION.&lt;/P&gt;&lt;P&gt;    MOVE ICON_SYSTEM_BACK TO LS_TOOLBAR-ICON.&lt;/P&gt;&lt;P&gt;    MOVE 'Back' TO LS_TOOLBAR-QUICKINFO.&lt;/P&gt;&lt;P&gt;    MOVE ' Back '  TO LS_TOOLBAR-TEXT.&lt;/P&gt;&lt;P&gt;    MOVE ' '  TO LS_TOOLBAR-DISABLED.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_toolbar&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_event_handler IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_event_handler1 IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVENT_HANDLER1 IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;*Handle User Command&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_USER_COMMAND.&lt;/P&gt;&lt;P&gt;    PERFORM EVENT_UCOMM1 USING E_UCOMM.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "user_command&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  METHOD HANDLE_TOOLBAR.&lt;/P&gt;&lt;P&gt;    DATA: LS_TOOLBAR  TYPE STB_BUTTON.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append a separator to normal toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 3 TO LS_TOOLBAR-BUTN_TYPE.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append SAVE icon&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 'SAVE' TO LS_TOOLBAR-FUNCTION.&lt;/P&gt;&lt;P&gt;    MOVE ICON_SYSTEM_SAVE TO LS_TOOLBAR-ICON.&lt;/P&gt;&lt;P&gt;    MOVE 'Save' TO LS_TOOLBAR-QUICKINFO.&lt;/P&gt;&lt;P&gt;    MOVE ' Save  '  TO LS_TOOLBAR-TEXT.&lt;/P&gt;&lt;P&gt;    MOVE ' '  TO LS_TOOLBAR-DISABLED.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append a separator to normal toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 3 TO LS_TOOLBAR-BUTN_TYPE.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append an Back icon&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;    MOVE 'BACK' TO LS_TOOLBAR-FUNCTION.&lt;/P&gt;&lt;P&gt;    MOVE ICON_SYSTEM_BACK TO LS_TOOLBAR-ICON.&lt;/P&gt;&lt;P&gt;    MOVE 'Back' TO LS_TOOLBAR-QUICKINFO.&lt;/P&gt;&lt;P&gt;    MOVE ' Back  '  TO LS_TOOLBAR-TEXT.&lt;/P&gt;&lt;P&gt;    MOVE ' '  TO LS_TOOLBAR-DISABLED.&lt;/P&gt;&lt;P&gt;    APPEND LS_TOOLBAR TO E_OBJECT-&amp;gt;MT_TOOLBAR.&lt;/P&gt;&lt;P&gt;    CLEAR LS_TOOLBAR.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_toolbar&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_event_handler1 IMPLEMENTATION&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;             Global Definitions&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: "G_GRID TYPE REF TO CL_GUI_ALV_GRID,   "Grid for first report&lt;/P&gt;&lt;P&gt;      G_GRID1 TYPE REF TO CL_GUI_ALV_GRID,  "grid for second report&lt;/P&gt;&lt;P&gt;      G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,"Container1&lt;/P&gt;&lt;P&gt;      G_CUSTOM_CONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,"container&lt;/P&gt;&lt;P&gt;      G_HANDLER TYPE REF TO LCL_EVENT_HANDLER, "handler&lt;/P&gt;&lt;P&gt;      G_HANDLER1 TYPE REF TO LCL_EVENT_HANDLER1. "handler&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA: OK_CODE LIKE SY-UCOMM,&lt;/P&gt;&lt;P&gt;      SAVE_OK LIKE SY-UCOMM,&lt;/P&gt;&lt;P&gt;      G_CONTAINER1 TYPE SCRFNAME VALUE 'ZSDR0057_DEL_HOLD_CONT1',&lt;/P&gt;&lt;P&gt;      G_CONTAINER2 TYPE SCRFNAME VALUE 'ZSDR0057_DEL_HOLD_CONT2',&lt;/P&gt;&lt;P&gt;      GS_LAYOUT TYPE LVC_S_LAYO,&lt;/P&gt;&lt;P&gt;      GS_LAYOUT1 TYPE LVC_S_LAYO.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*- Fieldcatalog for First and second Report&lt;/P&gt;&lt;P&gt;DATA: IT_FIELDCAT  TYPE  LVC_T_FCAT,&lt;/P&gt;&lt;P&gt;      X_FIELDCAT TYPE LVC_S_FCAT,&lt;/P&gt;&lt;P&gt;      IT_FIELDCAT1  TYPE  LVC_T_FCAT,&lt;/P&gt;&lt;P&gt;      X_FIELDCAT1 TYPE LVC_S_FCAT,&lt;/P&gt;&lt;P&gt;      LS_VARI  TYPE DISVARIANT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               Selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: S_VBELN FOR V_LIKP-VBELN, "Delivery&lt;/P&gt;&lt;P&gt;                S_VSTEL FOR V_LIKP-VSTEL, "Shipping Point&lt;/P&gt;&lt;P&gt;                S_WERKS FOR V_LIPS-WERKS, "Plant&lt;/P&gt;&lt;P&gt;                S_WADAT FOR V_VBEP-WADAT, "Pgi Date&lt;/P&gt;&lt;P&gt;                S_TRSPG FOR V_LIKP-TRSPG OBLIGATORY,"Shp bolck Reason&lt;/P&gt;&lt;P&gt;                S_OCHRC FOR V_VEKP-ZZOCHOLDRC MATCHCODE OBJECT&lt;/P&gt;&lt;P&gt;                                   ZZOCHOLDRC, "OC Reason Code&lt;/P&gt;&lt;P&gt;                S_USERID FOR V_VBAK-ZZREP_USERID1."Rep User ID&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               START-OF_SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CLEAR IT_LIKP.&lt;/P&gt;&lt;P&gt;  REFRESH IT_LIKP.&lt;/P&gt;&lt;P&gt;  SELECT VBELN&lt;/P&gt;&lt;P&gt;         VSTEL&lt;/P&gt;&lt;P&gt;         LFDAT&lt;/P&gt;&lt;P&gt;         KUNNR&lt;/P&gt;&lt;P&gt;         FROM LIKP&lt;/P&gt;&lt;P&gt;         INTO TABLE IT_LIKP&lt;/P&gt;&lt;P&gt;         WHERE VBELN IN S_VBELN&lt;/P&gt;&lt;P&gt;          AND  VSTEL IN S_VSTEL&lt;/P&gt;&lt;P&gt;          AND  WADAT IN S_WADAT&lt;/P&gt;&lt;P&gt;          AND  WADAT_IST = '00000000'&lt;/P&gt;&lt;P&gt;          AND TRSPG IN S_TRSPG.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    CLEAR V_FLAG.&lt;/P&gt;&lt;P&gt;    V_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF V_FLAG = ' '.&lt;/P&gt;&lt;P&gt;**Populating the Delivery Item Data&lt;/P&gt;&lt;P&gt;    PERFORM GET_DEL_ITEM_DATA.&lt;/P&gt;&lt;P&gt;**Getting the PGI DATE &amp;amp; USERID&lt;/P&gt;&lt;P&gt;    PERFORM GET_USERID.&lt;/P&gt;&lt;P&gt;**Getting the Promise DATE &amp;amp; OC HOLD RC&lt;/P&gt;&lt;P&gt;    PERFORM GET_VEKP_DATA.&lt;/P&gt;&lt;P&gt;**get the Reason codes&lt;/P&gt;&lt;P&gt;    PERFORM SELECT_OCHOLDRC.&lt;/P&gt;&lt;P&gt;    IF NOT IT_LIPS[] IS INITIAL&lt;/P&gt;&lt;P&gt;     AND  NOT IT_VBAK[] IS INITIAL&lt;/P&gt;&lt;P&gt;     AND  NOT IT_VEKP_TMP[] IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Populating the Final Internaltable&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM POPULATE_FINAL_TABLE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               END-OF-SELECTION.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  IF NOT IT_FINAL[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    CALL SCREEN 100. "Calling the First Screen&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE I002 WITH 'NO DATA FOR THE SELECTION'(004).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      MODULE PBO OUTPUT                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE PBO OUTPUT.&lt;/P&gt;&lt;P&gt;  DATA: LS_EDIT TYPE LVC_S_STYL, "to find the edit in output&lt;/P&gt;&lt;P&gt;        LT_EDIT TYPE LVC_T_STYL, "to find the edit in output&lt;/P&gt;&lt;P&gt;        V_INDEX LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;        LS_OUTTAB TYPE T_FINAL.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'MAIN100'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'MAIN100'.&lt;/P&gt;&lt;P&gt;  IF G_CUSTOM_CONTAINER IS INITIAL.&lt;/P&gt;&lt;P&gt;**Initializing the grid and calling the fm to Display the O/P&lt;/P&gt;&lt;P&gt;    PERFORM CREATE_AND_INIT_ALV.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "PBO OUTPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      MODULE PAI INPUT                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE PAI INPUT.&lt;/P&gt;&lt;P&gt;  SAVE_OK = OK_CODE.&lt;/P&gt;&lt;P&gt;  CLEAR OK_CODE.&lt;/P&gt;&lt;P&gt;  CASE SAVE_OK.&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN 'CANC'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    do nothing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "pai INPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_DEL_ITEM_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populating the Delivery Item Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_DEL_ITEM_DATA .&lt;/P&gt;&lt;P&gt;  IF NOT IT_LIKP[] IS INITIAL.&lt;/P&gt;&lt;P&gt;**-Getting the name of Ship-to-party&lt;/P&gt;&lt;P&gt;    SELECT KUNNR&lt;/P&gt;&lt;P&gt;          NAME1&lt;/P&gt;&lt;P&gt;          INTO TABLE IT_KNA1&lt;/P&gt;&lt;P&gt;          FROM KNA1&lt;/P&gt;&lt;P&gt;          FOR ALL ENTRIES IN IT_LIKP[]&lt;/P&gt;&lt;P&gt;          WHERE KUNNR = IT_LIKP-KUNNR.&lt;/P&gt;&lt;P&gt;**-Getting Delivery Item Data&lt;/P&gt;&lt;P&gt;    SELECT VBELN&lt;/P&gt;&lt;P&gt;           POSNR&lt;/P&gt;&lt;P&gt;           MATNR&lt;/P&gt;&lt;P&gt;           WERKS&lt;/P&gt;&lt;P&gt;           ARKTX&lt;/P&gt;&lt;P&gt;           VGBEL&lt;/P&gt;&lt;P&gt;           VGPOS&lt;/P&gt;&lt;P&gt;           ZZCONPATH&lt;/P&gt;&lt;P&gt;           INTO TABLE IT_LIPS&lt;/P&gt;&lt;P&gt;           FROM LIPS&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN IT_LIKP[]&lt;/P&gt;&lt;P&gt;           WHERE VBELN = IT_LIKP-VBELN&lt;/P&gt;&lt;P&gt;               AND WERKS IN S_WERKS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_DEL_ITEM_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_userid&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Getting the  USERID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_USERID .&lt;/P&gt;&lt;P&gt;  IF NOT IT_LIPS[]  IS INITIAL.&lt;/P&gt;&lt;P&gt;**-Getting the USERID&lt;/P&gt;&lt;P&gt;    SELECT VBELN&lt;/P&gt;&lt;P&gt;           ZZREP_USERID1&lt;/P&gt;&lt;P&gt;           INTO TABLE IT_VBAK&lt;/P&gt;&lt;P&gt;           FROM VBAK&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN IT_LIPS[]&lt;/P&gt;&lt;P&gt;           WHERE VBELN = IT_LIPS-VGBEL&lt;/P&gt;&lt;P&gt;              AND ZZREP_USERID1 IN S_USERID.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_userid&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  populate_final_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populating the Final Internaltable&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM POPULATE_FINAL_TABLE .&lt;/P&gt;&lt;P&gt;  DATA: L_TABIX LIKE SY-TABIX.&lt;/P&gt;&lt;P&gt;  CLEAR IT_FINAL.&lt;/P&gt;&lt;P&gt;  REFRESH IT_FINAL.&lt;/P&gt;&lt;P&gt;  SORT IT_VEKP_TMP BY ZZPROMDT ZZSONUM ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;  DATA IT_TMP LIKE IT_VEKP OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA IT_VEKP_TMP1 LIKE IT_VEKP OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  CLEAR IT_VEKP_TMP1[].&lt;/P&gt;&lt;P&gt;  IT_VEKP_TMP1[] = IT_VEKP_TMP[].&lt;/P&gt;&lt;P&gt;  LOOP AT IT_VEKP_TMP.&lt;/P&gt;&lt;P&gt;    MOVE IT_VEKP_TMP TO IT_TMP.&lt;/P&gt;&lt;P&gt;    CLEAR IT_TMP-EXIDV.&lt;/P&gt;&lt;P&gt;    COLLECT IT_TMP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  CLEAR IT_VEKP_TMP[].&lt;/P&gt;&lt;P&gt;  IT_VEKP_TMP[] =  IT_TMP[] .&lt;/P&gt;&lt;P&gt; LOOP AT IT_VEKP_TMP.&lt;/P&gt;&lt;P&gt;    L_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_VEKP_TMP1 WITH KEY INHALT = IT_VEKP_TMP-INHALT&lt;/P&gt;&lt;P&gt;                                ZZSONUM = IT_VEKP_TMP-ZZSONUM&lt;/P&gt;&lt;P&gt;                                ZZPROMDT = IT_VEKP_TMP-ZZPROMDT&lt;/P&gt;&lt;P&gt;                                ZZOCHOLDRC = IT_VEKP_TMP-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                                VEMNG = IT_VEKP_TMP-VEMNG.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      IT_VEKP_TMP-EXIDV = IT_VEKP_TMP1-EXIDV.&lt;/P&gt;&lt;P&gt;      MODIFY IT_VEKP_TMP INDEX L_TABIX.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_LIPS.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING IT_LIPS TO IT_FINAL.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_LIKP WITH KEY VBELN = IT_LIPS-VBELN.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      IT_FINAL-VSTEL = IT_LIKP-VSTEL.&lt;/P&gt;&lt;P&gt;      IT_FINAL-LFDAT = IT_LIKP-LFDAT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_KNA1 WITH KEY KUNNR = IT_LIKP-KUNNR.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      IT_FINAL-NAME1 = IT_KNA1-NAME1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_VBAK WITH KEY VBELN = IT_LIPS-VGBEL.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      IT_FINAL-ZZREP_USERID1 = IT_VBAK-ZZREP_USERID1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_SONUM WITH KEY VGBEL = IT_LIPS-VGBEL&lt;/P&gt;&lt;P&gt;                                 VGPOS = IT_LIPS-VGPOS.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      LOOP AT IT_VEKP_TMP WHERE ZZSONUM = IT_SONUM-ZZSONUM&lt;/P&gt;&lt;P&gt;                             AND INHALT = IT_LIPS-VBELN.&lt;/P&gt;&lt;P&gt;        IF NOT IT_VEKP_TMP-ZZPROMDT+0(4) = '0000'.&lt;/P&gt;&lt;P&gt;          IT_FINAL-ZZPROMDT = IT_VEKP_TMP-ZZPROMDT.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          IT_FINAL-ZZPROMDT = '00000000'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IT_FINAL-ZZOCHOLDRC = IT_VEKP_TMP-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;        IT_FINAL-VEMNG = IT_VEKP_TMP-VEMNG.&lt;/P&gt;&lt;P&gt;        IT_FINAL-ZZSONUM = IT_VEKP_TMP-ZZSONUM.&lt;/P&gt;&lt;P&gt;        IT_FINAL-EXIDV = IT_VEKP_TMP-EXIDV.&lt;/P&gt;&lt;P&gt;        APPEND IT_FINAL.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        IT_FINAL-ZZPROMDT = '00000000'.&lt;/P&gt;&lt;P&gt;        IT_FINAL-ZZOCHOLDRC = ' '.&lt;/P&gt;&lt;P&gt;        IT_FINAL-VEMNG = '  '.&lt;/P&gt;&lt;P&gt;        IT_FINAL-FLAG = 'X'.&lt;/P&gt;&lt;P&gt;        APPEND IT_FINAL.&lt;/P&gt;&lt;P&gt;        CLEAR IT_FINAL.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  DELETE IT_FINAL WHERE ZZOCHOLDRC NOT IN S_OCHRC[].&lt;/P&gt;&lt;P&gt;  DELETE IT_FINAL WHERE ZZREP_USERID1 NOT IN S_USERID[].&lt;/P&gt;&lt;P&gt;  DELETE IT_FINAL WHERE WERKS NOT IN S_WERKS[].&lt;/P&gt;&lt;P&gt;  IF NOT IT_ZSDOCHOLD[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    LOOP AT IT_FINAL.&lt;/P&gt;&lt;P&gt;      READ TABLE IT_ZSDOCHOLD WITH KEY ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        IT_FINAL-ZZRCDESC = IT_ZSDOCHOLD-ZZRCDESC.&lt;/P&gt;&lt;P&gt;        MODIFY IT_FINAL.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IT_FINAL_TMP[] = IT_FINAL[].&lt;/P&gt;&lt;P&gt;  CLEAR IT_FINAL.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " populate_final_table&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  get_vekp_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populating Promise Date and Order Control Hold Reason Code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;FORM GET_VEKP_DATA .&lt;/P&gt;&lt;P&gt;  CLEAR: IT_SONUM,IT_VEKP,IT_VEKP_TMP.&lt;/P&gt;&lt;P&gt;  REFRESH: IT_SONUM,IT_VEKP,IT_VEKP_TMP.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_LIPS.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING IT_LIPS TO IT_SONUM.&lt;/P&gt;&lt;P&gt;    CONCATENATE IT_LIPS-VGBEL IT_LIPS-VGPOS INTO IT_SONUM-ZZSONUM.&lt;/P&gt;&lt;P&gt;    APPEND IT_SONUM.&lt;/P&gt;&lt;P&gt;    CLEAR IT_SONUM.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF NOT IT_SONUM[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT EXIDV&lt;/P&gt;&lt;P&gt;           INHALT&lt;/P&gt;&lt;P&gt;           ZZSONUM&lt;/P&gt;&lt;P&gt;           ZZPROMDT&lt;/P&gt;&lt;P&gt;           ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;          INTO TABLE IT_VEKP&lt;/P&gt;&lt;P&gt;          FROM VEKP&lt;/P&gt;&lt;P&gt;          FOR ALL ENTRIES IN IT_SONUM[]&lt;/P&gt;&lt;P&gt;          WHERE ZZSONUM = IT_SONUM-ZZSONUM&lt;/P&gt;&lt;P&gt;             AND ZZOCHOLDRC IN S_OCHRC.&lt;/P&gt;&lt;P&gt;    SELECT  EXIDV INHALT VEMNG&lt;/P&gt;&lt;P&gt;            ZZSONUM&lt;/P&gt;&lt;P&gt;            INTO TABLE IT_QUANT&lt;/P&gt;&lt;P&gt;            FROM ZVEKPO&lt;/P&gt;&lt;P&gt;            FOR ALL ENTRIES IN IT_SONUM[]&lt;/P&gt;&lt;P&gt;            WHERE ZZSONUM = IT_SONUM-ZZSONUM.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      LOOP AT IT_VEKP.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_QUANT WITH KEY EXIDV = IT_VEKP-EXIDV&lt;/P&gt;&lt;P&gt;                                     INHALT = IT_VEKP-INHALT&lt;/P&gt;&lt;P&gt;                                     ZZSONUM = IT_VEKP-ZZSONUM.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          IT_VEKP-VEMNG = IT_QUANT-VEMNG.&lt;/P&gt;&lt;P&gt;          MODIFY IT_VEKP.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      IT_VEKP_TMP[] = IT_VEKP[].&lt;/P&gt;&lt;P&gt;      SELECT ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;             ZZRCDESC&lt;/P&gt;&lt;P&gt;             INTO TABLE IT_ZSDOCHOLD&lt;/P&gt;&lt;P&gt;             FROM ZSD_OC_HOLD&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN IT_VEKP[]&lt;/P&gt;&lt;P&gt;             WHERE ZZOCHOLDRC = IT_VEKP-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_vekp_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  SELECT_OCHOLDRC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Selecting the Reason Codes and Descriptions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SELECT_OCHOLDRC .&lt;/P&gt;&lt;P&gt;  SELECT *&lt;/P&gt;&lt;P&gt;         FROM ZSD_OC_HOLD&lt;/P&gt;&lt;P&gt;         INTO TABLE IT_OCRC.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " select_OCHOLDRC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  CREATE_AND_INIT_ALV&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Creating the ALV grid and initializing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CREATE_AND_INIT_ALV .&lt;/P&gt;&lt;P&gt;  DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_CUSTOM_CONTAINER&lt;/P&gt;&lt;P&gt;         EXPORTING CONTAINER_NAME = G_CONTAINER1.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_GRID&lt;/P&gt;&lt;P&gt;         EXPORTING I_PARENT = G_CUSTOM_CONTAINER.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set a titlebar for the grid control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  GS_LAYOUT-STYLEFNAME = 'HANDLE_STYLE'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-GRID_TITLE = TEXT-003.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-CWIDTH_OPT = 'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-NO_ROWMARK = 'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-ZEBRA = SPACE."'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-INFO_FNAME  = SPACE.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-CTAB_FNAME  = SPACE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;REGISTER_EDIT_EVENT&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      I_EVENT_ID = CL_GUI_ALV_GRID=&amp;gt;MC_EVT_ENTER.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_HANDLER.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER-&amp;gt;HANDLE_USER_COMMAND FOR G_GRID.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER-&amp;gt;HANDLE_DOUBLE_CLICK FOR G_GRID.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER-&amp;gt;HANDLE_HOTSPOT_CLICK FOR G_GRID.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER-&amp;gt;HANDLE_DATA_CHANGED FOR G_GRID.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER-&amp;gt;HANDLE_TOOLBAR FOR G_GRID.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;setting focus for created grid control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD CL_GUI_CONTROL=&amp;gt;SET_FOCUS&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      CONTROL = G_GRID.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build fieldcat and set editable for date and reason code&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;edit enabled. Assign a handle for the dropdown listbox.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM BUILD_FIELDCAT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Optionally restrict generic functions to 'change only'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  (The user shall not be able to add new lines).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  PERFORM DISABLE_EDIT_FIELDS.&lt;/P&gt;&lt;P&gt;**Vaiant to save the layout&lt;/P&gt;&lt;P&gt;  LS_VARI-REPORT      = SY-REPID.&lt;/P&gt;&lt;P&gt;  LS_VARI-HANDLE      = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-LOG_GROUP   = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-USERNAME    = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-VARIANT     = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-TEXT        = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-DEPENDVARS  = SPACE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Define a drop down table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM SET_DRDN_TABLE.&lt;/P&gt;&lt;P&gt;**Calling the Method for ALV output&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      IT_TOOLBAR_EXCLUDING = LT_EXCLUDE&lt;/P&gt;&lt;P&gt;      IS_VARIANT           = LS_VARI&lt;/P&gt;&lt;P&gt;      IS_LAYOUT            = GS_LAYOUT&lt;/P&gt;&lt;P&gt;      I_SAVE               = 'A'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      IT_FIELDCATALOG      = IT_FIELDCAT&lt;/P&gt;&lt;P&gt;      IT_OUTTAB            = IT_FINAL[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set editable cells to ready for input initially&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;SET_READY_FOR_INPUT&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      I_READY_FOR_INPUT = 1.&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;SET_TOOLBAR_INTERACTIVE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                               "CREATE_AND_INIT_ALV&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  EXCLUDE_TB_FUNCTIONS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Excluding the ALV functions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM EXCLUDE_TB_FUNCTIONS CHANGING PT_EXCLUDE TYPE UI_FUNCTIONS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only allow to change data not to create new entries (exclude&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;generic functions).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA LS_EXCLUDE TYPE UI_FUNC.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_COPY_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_DELETE_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_APPEND_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_INSERT_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_MOVE_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_COPY.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_CUT.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_PASTE.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_PASTE_NEW_ROW.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;  LS_EXCLUDE = CL_GUI_ALV_GRID=&amp;gt;MC_FC_LOC_UNDO.&lt;/P&gt;&lt;P&gt;  APPEND LS_EXCLUDE TO PT_EXCLUDE.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " EXCLUDE_TB_FUNCTIONS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_fieldcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BUILD_FIELDCAT .&lt;/P&gt;&lt;P&gt;  DATA:L_POS TYPE I VALUE 1.&lt;/P&gt;&lt;P&gt;  CLEAR: L_POS.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Shpt'(012).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'VSTEL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '4'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Con Path'(013).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'ZZCONPATH'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '8'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Plant'(014).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'WERKS'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '5'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Del Date'(015).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'LFDAT'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COLTEXT = 'Prom Date'(016).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-SCRTEXT_M = 'Prom Date'(016).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EDIT = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-HOTSPOT = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  X_FIELDCAT-DATATYPE = 'DATS'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-INTTYPE = 'D'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-REF_TABLE = 'VEKP'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-REF_FIELD = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR  X_FIELDCAT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Ship-To-Name'(017).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'NAME1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '40'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'SalesOrder#'(018).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'VGBEL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Item'(019).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'VGPOS'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '5'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Material'(020).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'MATNR'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '18'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Materal Desc'(021).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'ARKTX'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '40'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'D.O.Item Qty'(022).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'VEMNG'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '13'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'RC'(023).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'ZZOCHOLDRC'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '3'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EDIT = 'X'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-DRDN_HNDL = '1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-DRDN_ALIAS = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-DRDN_FIELD = 'DROP_DOWN_HANDLE'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-SCRTEXT_M = 'OC HOLD RC Desc'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-FIELDNAME = 'ZZRCDESC'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-OUTPUTLEN = '20'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-EDIT = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR X_FIELDCAT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; L_POS = L_POS + 1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Delivery'(024).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'VBELN'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '10'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Item'(025).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'POSNR'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '5'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT-SCRTEXT_M = 'Rep User Id'(026).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-FIELDNAME = 'ZZREP_USERID1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-TABNAME = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-OUTPUTLEN = '11'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT-HOTSPOT = ' '.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT TO IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_fieldcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_drdn_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Setting the Drop down for the Reason code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SET_DRDN_TABLE.&lt;/P&gt;&lt;P&gt;  DATA: X_OCRC LIKE LINE OF IT_OCRC.&lt;/P&gt;&lt;P&gt;  DATA:LT_DRAL TYPE LVC_T_DRAL,&lt;/P&gt;&lt;P&gt;        LS_DRAL TYPE LVC_S_DRAL,&lt;/P&gt;&lt;P&gt;        L_DRDN(25) TYPE C.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT IT_OCRC INTO X_OCRC.&lt;/P&gt;&lt;P&gt;  CONCATENATE X_OCRC-ZZOCHOLDRC ' ' ' ' ' ' X_OCRC-ZZRCDESC INTO L_DRDN&lt;/P&gt;&lt;P&gt;SEPARATED BY SPACE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;First listbox (handle '1').&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LS_DRAL-HANDLE = '1'.&lt;/P&gt;&lt;P&gt;    LS_DRAL-VALUE =  L_DRDN.&lt;/P&gt;&lt;P&gt;    LS_DRAL-INT_VALUE = X_OCRC-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;    APPEND LS_DRAL TO LT_DRAL.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;**Setting the Drop down table for Reason Code&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;SET_DROP_DOWN_TABLE&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      IT_DROP_DOWN_ALIAS = LT_DRAL.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " set_drdn_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  handle_hotspot_click&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Handling the Hotspot&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM HANDLE_HOTSPOT_CLICK USING I_ROW_ID TYPE LVC_S_ROW&lt;/P&gt;&lt;P&gt;                                I_COLUMN_ID TYPE LVC_S_COL&lt;/P&gt;&lt;P&gt;                                IS_ROW_NO TYPE LVC_S_ROID.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  READ TABLE IT_FINAL INDEX I_ROW_ID  .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    IF I_COLUMN_ID-FIELDNAME = 'VGBEL'.&lt;/P&gt;&lt;P&gt;      PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID 'AUN' FIELD IT_FINAL-VGBEL.&lt;/P&gt;&lt;P&gt;      CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;**if user clicks on Delivery&lt;/P&gt;&lt;P&gt;    IF I_COLUMN_ID-FIELDNAME = 'VBELN'.&lt;/P&gt;&lt;P&gt;      PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID 'VL' FIELD IT_FINAL-VBELN.&lt;/P&gt;&lt;P&gt;      CALL TRANSACTION 'VL02N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM .                    "handle_hotspot_click&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FORM_REFRESH for first list&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_REFRESH .&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID-&amp;gt;REFRESH_TABLE_DISPLAY&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FINISHED = 1&lt;/P&gt;&lt;P&gt;      OTHERS   = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM .                    "FORM_REFRESH&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  event_ucomm&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Handling User Commands&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM EVENT_UCOMM  USING    E_UCOMM TYPE SY-UCOMM.&lt;/P&gt;&lt;P&gt;  SORT IT_FINAL.&lt;/P&gt;&lt;P&gt;  SORT IT_FINAL_TMP.&lt;/P&gt;&lt;P&gt;  CASE E_UCOMM.&lt;/P&gt;&lt;P&gt;    WHEN 'BACK'.&lt;/P&gt;&lt;P&gt;      CALL METHOD G_GRID-&amp;gt;CHECK_CHANGED_DATA&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          E_VALID = L_VALID.&lt;/P&gt;&lt;P&gt;      CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.&lt;/P&gt;&lt;P&gt;      PERFORM BACK_OPERATION.&lt;/P&gt;&lt;P&gt;    WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;      CALL METHOD G_GRID-&amp;gt;CHECK_CHANGED_DATA&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          E_VALID = L_VALID.&lt;/P&gt;&lt;P&gt;      CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.&lt;/P&gt;&lt;P&gt;      PERFORM SAVE_OPERATION.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " event_ucomm&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  back_operation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      When User do Back operation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BACK_OPERATION .&lt;/P&gt;&lt;P&gt;**When User Press back Button&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WHEN 'BACK'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: L_ANS TYPE C,&lt;/P&gt;&lt;P&gt;        L_TABIX TYPE SY-TABIX,&lt;/P&gt;&lt;P&gt;        L_SONUM TYPE VEKP-ZZSONUM,&lt;/P&gt;&lt;P&gt;        X_OCRC LIKE LINE OF IT_OCRC.&lt;/P&gt;&lt;P&gt;**Checking for the Data Change&lt;/P&gt;&lt;P&gt;  IF IT_FINAL_TMP[] &amp;lt;&amp;gt; IT_FINAL[].&lt;/P&gt;&lt;P&gt;    PERFORM CONFIRM_BEFORE_LEAVE CHANGING L_ANS.&lt;/P&gt;&lt;P&gt;    IF L_ANS = '1' .&lt;/P&gt;&lt;P&gt;      LOOP AT IT_FINAL.&lt;/P&gt;&lt;P&gt;        L_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_FINAL_TMP INDEX L_TABIX.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC  = 0.&lt;/P&gt;&lt;P&gt;          IF IT_FINAL &amp;lt;&amp;gt; IT_FINAL_TMP.&lt;/P&gt;&lt;P&gt;*-Validate Date Field.&lt;/P&gt;&lt;P&gt;            PERFORM VALIDATE_AND_CONVERT_DATE.&lt;/P&gt;&lt;P&gt;**Modifying the VEKP table based on changes&lt;/P&gt;&lt;P&gt;            IF NOT IT_FINAL_TMP-EXIDV IS INITIAL.&lt;/P&gt;&lt;P&gt;              UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                              ZZPROMDT =  IT_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;                            WHERE EXIDV   = IT_FINAL_TMP-EXIDV&lt;/P&gt;&lt;P&gt;                         AND INHALT = IT_FINAL-VBELN.&lt;/P&gt;&lt;P&gt;              IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                COMMIT WORK AND WAIT.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                                ZZPROMDT =  IT_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;                              WHERE INHALT = IT_FINAL-VBELN&lt;/P&gt;&lt;P&gt;                           AND ZZSONUM = IT_FINAL_TMP-ZZSONUM&lt;/P&gt;&lt;P&gt;                           AND ZZPROMDT = IT_FINAL_TMP-ZZPROMDT&lt;/P&gt;&lt;P&gt;                           AND ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;              IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                COMMIT WORK AND WAIT.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    ELSEIF L_ANS = '2'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " back_operation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  CONFIRM_BEFORE_LEAVE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Popup for Confirm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CONFIRM_BEFORE_LEAVE  CHANGING P_ANS TYPE C.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'POPUP_TO_CONFIRM'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;             TITLEBAR              = 'Confirm'(007)&lt;/P&gt;&lt;P&gt;             TEXT_QUESTION = 'Do you wish to save your data first?'(006)&lt;/P&gt;&lt;P&gt;             TEXT_BUTTON_1         = 'Yes'(008)&lt;/P&gt;&lt;P&gt;             ICON_BUTTON_1         = 'ICON_OKAY'&lt;/P&gt;&lt;P&gt;             TEXT_BUTTON_2         = 'No'(010)&lt;/P&gt;&lt;P&gt;             ICON_BUTTON_2         = 'ICON_CANCEL'&lt;/P&gt;&lt;P&gt;             DEFAULT_BUTTON        = '1'&lt;/P&gt;&lt;P&gt;             DISPLAY_CANCEL_BUTTON = 'X'&lt;/P&gt;&lt;P&gt;             START_COLUMN          = 25&lt;/P&gt;&lt;P&gt;             START_ROW             = 6&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;             ANSWER                = P_ANS&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;             TEXT_NOT_FOUND        = 1&lt;/P&gt;&lt;P&gt;             OTHERS                = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " CONFIRM_BEFORE_LEAVE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  VALIDATE_AND_CONVERT_DATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Validating and Converting the date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM VALIDATE_AND_CONVERT_DATE .&lt;/P&gt;&lt;P&gt;  DATA : L_DATE LIKE SY-DATUM.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CONVERT_DATE_INPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      INPUT                     = IT_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      OUTPUT                    = L_DATE&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      PLAUSIBILITY_CHECK_FAILED = 1&lt;/P&gt;&lt;P&gt;      WRONG_FORMAT_IN_INPUT     = 2&lt;/P&gt;&lt;P&gt;      OTHERS                    = 3.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    WRITE L_DATE TO IT_FINAL-ZZPROMDT.&lt;/P&gt;&lt;P&gt;    MODIFY IT_FINAL.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " VALIDATE_AND_CONVERT_DATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  STATUS_0200  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PBO of Second List&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE STATUS_0200 OUTPUT.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'MAIN100'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'MAIN100'.&lt;/P&gt;&lt;P&gt;  IF G_CUSTOM_CONTAINER1 IS INITIAL.&lt;/P&gt;&lt;P&gt;**Initializing the second Grid&lt;/P&gt;&lt;P&gt;    PERFORM CREATE_AND_INIT_ALV1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0200  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  USER_COMMAND_0200  INPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PAI of Second list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE USER_COMMAND_0200 INPUT.&lt;/P&gt;&lt;P&gt;  DATA: L_ANS.&lt;/P&gt;&lt;P&gt;  SAVE_OK = OK_CODE.&lt;/P&gt;&lt;P&gt;  CLEAR OK_CODE.&lt;/P&gt;&lt;P&gt;  CASE SAVE_OK.&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN 'CANC'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    do nothing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_0200  INPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  CREATE_AND_INIT_ALV1&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Creating the Grid for Second List&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CREATE_AND_INIT_ALV1 .&lt;/P&gt;&lt;P&gt;  DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_CUSTOM_CONTAINER1&lt;/P&gt;&lt;P&gt;         EXPORTING CONTAINER_NAME = G_CONTAINER2.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_GRID1&lt;/P&gt;&lt;P&gt;         EXPORTING I_PARENT = G_CUSTOM_CONTAINER1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;REGISTER_EDIT_EVENT&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      I_EVENT_ID = CL_GUI_ALV_GRID=&amp;gt;MC_EVT_ENTER.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_HANDLER1.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER1-&amp;gt;HANDLE_USER_COMMAND FOR G_GRID1.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_HANDLER1-&amp;gt;HANDLE_TOOLBAR FOR G_GRID1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-GRID_TITLE = TEXT-003.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-CWIDTH_OPT = 'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-NO_ROWMARK = 'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-ZEBRA = SPACE."'X'.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-INFO_FNAME  = SPACE.&lt;/P&gt;&lt;P&gt;  GS_LAYOUT1-CTAB_FNAME  = SPACE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;**Vaiant to save the layout&lt;/P&gt;&lt;P&gt;  LS_VARI-REPORT      = SY-REPID.&lt;/P&gt;&lt;P&gt;  LS_VARI-HANDLE      = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-LOG_GROUP   = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-USERNAME    = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-VARIANT     = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-TEXT        = SPACE.&lt;/P&gt;&lt;P&gt;  LS_VARI-DEPENDVARS  = SPACE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;setting focus for created grid control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL METHOD CL_GUI_CONTROL=&amp;gt;SET_FOCUS&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      CONTROL = G_GRID1.&lt;/P&gt;&lt;P&gt;  PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Define a drop down table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM SET_DRDN_TABLE1.&lt;/P&gt;&lt;P&gt;  PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      IT_TOOLBAR_EXCLUDING = LT_EXCLUDE&lt;/P&gt;&lt;P&gt;      IS_VARIANT           = LS_VARI&lt;/P&gt;&lt;P&gt;      I_SAVE               = 'A'&lt;/P&gt;&lt;P&gt;      IS_LAYOUT            = GS_LAYOUT1&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      IT_FIELDCATALOG      = IT_FIELDCAT1&lt;/P&gt;&lt;P&gt;      IT_OUTTAB            = IT_VEKP1[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Set editable cells to ready for input initially&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;SET_READY_FOR_INPUT&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      I_READY_FOR_INPUT = 1.&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;SET_TOOLBAR_INTERACTIVE.&lt;/P&gt;&lt;P&gt;ENDFORM.                               "CREATE_AND_INIT_ALV1&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_HU_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get Handling Units Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_HU_DATA USING X_FINAL TYPE T_FINAL.&lt;/P&gt;&lt;P&gt;  CLEAR IT_VEKP1.&lt;/P&gt;&lt;P&gt;  REFRESH IT_VEKP1.&lt;/P&gt;&lt;P&gt;  READ TABLE IT_SONUM WITH KEY VGBEL = X_FINAL-VGBEL&lt;/P&gt;&lt;P&gt;                               VGPOS = X_FINAL-VGPOS.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    LOOP AT IT_VEKP WHERE  INHALT = X_FINAL-VBELN&lt;/P&gt;&lt;P&gt;                     AND     ZZSONUM = IT_SONUM-ZZSONUM&lt;/P&gt;&lt;P&gt;                     AND  ZZPROMDT  = X_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;                     AND  ZZOCHOLDRC = X_FINAL-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;      IT_VEKP1-EXIDV  = IT_VEKP-EXIDV.&lt;/P&gt;&lt;P&gt;      IT_VEKP1-ZZSONUM = IT_VEKP-ZZSONUM.&lt;/P&gt;&lt;P&gt;      IF NOT IT_VEKP-ZZPROMDT+0(4) = '0000'.&lt;/P&gt;&lt;P&gt;        IT_VEKP1-ZZPROMDT = IT_VEKP-ZZPROMDT.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        IT_VEKP1-ZZPROMDT = '00000000'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IT_VEKP1-ZZOCHOLDRC = IT_VEKP-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;      APPEND IT_VEKP1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IT_VEKP1_TMP[] = IT_VEKP1[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_HU_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  POPULATE_FIELDCAT2&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populating the Field Catalog for Second list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM POPULATE_FIELDCAT2 .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR: IT_FIELDCAT1,X_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  REFRESH IT_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  DATA:L_POS TYPE I VALUE 1.&lt;/P&gt;&lt;P&gt;  CLEAR: L_POS.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-SCRTEXT_M = 'External Handling Unit Identification'(027).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-FIELDNAME = 'EXIDV'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-EDIT = ' '.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; X_FIELDCAT1-SCRTEXT_M = 'Prom Date'(016).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  X_FIELDCAT1-COLTEXT = 'Promise Date'(033).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-FIELDNAME = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-OUTPUTLEN = '12'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-EMPHASIZE = ' '.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-EDIT = 'X'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-DATATYPE = 'DATS'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-INTTYPE = 'D'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-REF_TABLE = 'VEKP'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-REF_FIELD = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  CLEAR  X_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  L_POS = L_POS + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-SCRTEXT_M = 'Order Control Hold Reason Code'(029).&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-FIELDNAME = 'ZZOCHOLDRC'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-COL_POS    = L_POS.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-DRDN_HNDL = '1'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-DRDN_ALIAS = 'X'.&lt;/P&gt;&lt;P&gt;  X_FIELDCAT1-EDIT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.&lt;/P&gt;&lt;P&gt;  CLEAR X_FIELDCAT1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " POPULATE_FIELDCAT2&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_drdn_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Drop Down for second report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SET_DRDN_TABLE1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA:X_OCRC LIKE LINE OF IT_OCRC.&lt;/P&gt;&lt;P&gt;  DATA:LT_DRAL TYPE LVC_T_DRAL,&lt;/P&gt;&lt;P&gt;        LS_DRAL TYPE LVC_S_DRAL,&lt;/P&gt;&lt;P&gt;        L_DRDN(25) TYPE C.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT IT_OCRC INTO X_OCRC.&lt;/P&gt;&lt;P&gt;    CONCATENATE X_OCRC-ZZOCHOLDRC '  ' ' ' '  '  X_OCRC-ZZRCDESC INTO&lt;/P&gt;&lt;P&gt;  L_DRDN&lt;/P&gt;&lt;P&gt;  SEPARATED BY SPACE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;First listbox (handle '1').&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LS_DRAL-HANDLE = '1'.&lt;/P&gt;&lt;P&gt;    LS_DRAL-VALUE =  L_DRDN.&lt;/P&gt;&lt;P&gt;    LS_DRAL-INT_VALUE = X_OCRC-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;    APPEND LS_DRAL TO LT_DRAL.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;SET_DROP_DOWN_TABLE&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      IT_DROP_DOWN_ALIAS = LT_DRAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                               " set_drdn_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  save_operation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Saving the changes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SAVE_OPERATION .&lt;/P&gt;&lt;P&gt;  DATA: L_TABIX LIKE SY-TABIX.&lt;/P&gt;&lt;P&gt;**CHECKING FOR THE DATA CHANGE&lt;/P&gt;&lt;P&gt;  IF IT_FINAL_TMP[] &amp;lt;&amp;gt; IT_FINAL[].&lt;/P&gt;&lt;P&gt;    LOOP AT IT_FINAL.&lt;/P&gt;&lt;P&gt;      L_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;      READ TABLE IT_FINAL_TMP INDEX L_TABIX.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC  = 0.&lt;/P&gt;&lt;P&gt;        IF IT_FINAL &amp;lt;&amp;gt; IT_FINAL_TMP.&lt;/P&gt;&lt;P&gt;*-Validate Date Field.&lt;/P&gt;&lt;P&gt;          PERFORM VALIDATE_AND_CONVERT_DATE.&lt;/P&gt;&lt;P&gt;**Modifying the VEKP table based on changes&lt;/P&gt;&lt;P&gt;          IF NOT IT_FINAL_TMP-EXIDV IS INITIAL.&lt;/P&gt;&lt;P&gt;            UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                            ZZPROMDT =  IT_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;                          WHERE EXIDV   = IT_FINAL_TMP-EXIDV&lt;/P&gt;&lt;P&gt;                       AND INHALT = IT_FINAL-VBELN.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;              V_DATA_CHANGE = ' '.&lt;/P&gt;&lt;P&gt;              COMMIT WORK AND WAIT.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                                ZZPROMDT =  IT_FINAL-ZZPROMDT&lt;/P&gt;&lt;P&gt;                              WHERE INHALT = IT_FINAL-VBELN&lt;/P&gt;&lt;P&gt;                           AND ZZSONUM = IT_FINAL_TMP-ZZSONUM&lt;/P&gt;&lt;P&gt;                           AND ZZPROMDT = IT_FINAL_TMP-ZZPROMDT&lt;/P&gt;&lt;P&gt;                           AND ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;              V_DATA_CHANGE = ' '.&lt;/P&gt;&lt;P&gt;              COMMIT WORK AND WAIT.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    PERFORM GET_VEKP_DATA .&lt;/P&gt;&lt;P&gt;    PERFORM POPULATE_FINAL_TABLE.&lt;/P&gt;&lt;P&gt;    PERFORM DISABLE_EDIT_FIELDS.&lt;/P&gt;&lt;P&gt;    PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;    MESSAGE S002 WITH 'Data Saved'(011).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " save_operation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BACK_SECOND_LIST&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      When User Press Back in Second list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BACK_SECOND_LIST .&lt;/P&gt;&lt;P&gt;  DATA:X_OCRC LIKE LINE OF IT_OCRC.&lt;/P&gt;&lt;P&gt;**Checking for the Change in the data&lt;/P&gt;&lt;P&gt;  IF IT_VEKP1_TMP[] &amp;lt;&amp;gt; IT_VEKP1[].&lt;/P&gt;&lt;P&gt;    PERFORM CONFIRM_BEFORE_LEAVE CHANGING L_ANS.&lt;/P&gt;&lt;P&gt;    IF L_ANS = '1'.&lt;/P&gt;&lt;P&gt;      LOOP AT IT_VEKP1.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_VEKP1_TMP WITH KEY EXIDV = IT_VEKP1-EXIDV.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          IF IT_VEKP1_TMP &amp;lt;&amp;gt; IT_VEKP1.&lt;/P&gt;&lt;P&gt;            UPDATE VEKP SET ZZPROMDT = IT_VEKP1-ZZPROMDT&lt;/P&gt;&lt;P&gt;                            ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                          WHERE EXIDV = IT_VEKP1-EXIDV.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;              COMMIT WORK.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      PERFORM GET_VEKP_DATA .&lt;/P&gt;&lt;P&gt;      CLEAR IT_VEKP1_TMP.&lt;/P&gt;&lt;P&gt;      REFRESH IT_VEKP1_TMP.&lt;/P&gt;&lt;P&gt;      IT_VEKP1_TMP[] = IT_VEKP1[].&lt;/P&gt;&lt;P&gt;      PERFORM POPULATE_FINAL_TABLE.&lt;/P&gt;&lt;P&gt;      PERFORM DISABLE_EDIT_FIELDS.&lt;/P&gt;&lt;P&gt;      PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;      MESSAGE S002 WITH 'Data Saved'(011).&lt;/P&gt;&lt;P&gt;      PERFORM CLEAR_GRID_CONTAINER.&lt;/P&gt;&lt;P&gt;    ELSEIF L_ANS = '2'.&lt;/P&gt;&lt;P&gt;      PERFORM CLEAR_GRID_CONTAINER.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM CLEAR_GRID_CONTAINER.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BACK_SECOND_LIST&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  clear_grid_container&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Clearing the Grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CLEAR_GRID_CONTAINER .&lt;/P&gt;&lt;P&gt;  CALL METHOD G_GRID1-&amp;gt;FREE.&lt;/P&gt;&lt;P&gt;  CALL METHOD G_CUSTOM_CONTAINER1-&amp;gt;FREE.&lt;/P&gt;&lt;P&gt;  CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.&lt;/P&gt;&lt;P&gt;  CLEAR G_CUSTOM_CONTAINER1.&lt;/P&gt;&lt;P&gt;  CLEAR G_GRID1.&lt;/P&gt;&lt;P&gt;  CLEAR G_HANDLER1.&lt;/P&gt;&lt;P&gt;  LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " clear_grid_container&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  disable_edit_fields&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Disable edit fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM DISABLE_EDIT_FIELDS .&lt;/P&gt;&lt;P&gt;**Changing the Edit option for the records which they don't have&lt;/P&gt;&lt;P&gt;**Entries in HU level&lt;/P&gt;&lt;P&gt;  LOOP AT IT_FINAL INTO LS_OUTTAB WHERE FLAG = 'X'.&lt;/P&gt;&lt;P&gt;    V_INDEX = SY-TABIX.&lt;/P&gt;&lt;P&gt;    LS_EDIT-FIELDNAME = 'ZZOCHOLDRC'.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE = CL_GUI_ALV_GRID=&amp;gt;MC_STYLE_DISABLED.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE2 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE3 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE4 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-MAXLEN = 8.&lt;/P&gt;&lt;P&gt;    INSERT LS_EDIT INTO TABLE LT_EDIT.&lt;/P&gt;&lt;P&gt;    LS_EDIT-FIELDNAME = 'ZZRCDESC'.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE = CL_GUI_ALV_GRID=&amp;gt;MC_STYLE_DISABLED.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE2 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE3 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE4 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-MAXLEN = 8.&lt;/P&gt;&lt;P&gt;    INSERT LS_EDIT INTO TABLE LT_EDIT.&lt;/P&gt;&lt;P&gt;    LS_EDIT-FIELDNAME = 'ZZPROMDT'.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE = CL_GUI_ALV_GRID=&amp;gt;MC_STYLE_DISABLED.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE2 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE3 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-STYLE4 = SPACE.&lt;/P&gt;&lt;P&gt;    LS_EDIT-MAXLEN = 8.&lt;/P&gt;&lt;P&gt;    INSERT LS_EDIT INTO TABLE LT_EDIT.&lt;/P&gt;&lt;P&gt;    INSERT LINES OF LT_EDIT INTO TABLE LS_OUTTAB-HANDLE_STYLE.&lt;/P&gt;&lt;P&gt;    MODIFY IT_FINAL INDEX V_INDEX FROM LS_OUTTAB  TRANSPORTING&lt;/P&gt;&lt;P&gt;                                      HANDLE_STYLE DROP_DOWN_HANDLE.&lt;/P&gt;&lt;P&gt;    MODIFY IT_FINAL_TMP INDEX V_INDEX FROM LS_OUTTAB  TRANSPORTING&lt;/P&gt;&lt;P&gt;                                     HANDLE_STYLE DROP_DOWN_HANDLE.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " disable_edit_fields&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  event_ucomm&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Handling User Commands&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM EVENT_UCOMM1  USING    E_UCOMM TYPE SY-UCOMM.&lt;/P&gt;&lt;P&gt;  SORT IT_VEKP1.&lt;/P&gt;&lt;P&gt;  SORT IT_VEKP1_TMP.&lt;/P&gt;&lt;P&gt;  CASE E_UCOMM.&lt;/P&gt;&lt;P&gt;      WHEN'BACK'.&lt;/P&gt;&lt;P&gt;**Checking for the change in the data of the output&lt;/P&gt;&lt;P&gt;      CALL METHOD G_GRID1-&amp;gt;CHECK_CHANGED_DATA&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          E_VALID = L_VALID1.&lt;/P&gt;&lt;P&gt;      CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.&lt;/P&gt;&lt;P&gt;      PERFORM BACK_SECOND_LIST.&lt;/P&gt;&lt;P&gt;    WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;      CALL METHOD G_GRID1-&amp;gt;CHECK_CHANGED_DATA&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          E_VALID = L_VALID1.&lt;/P&gt;&lt;P&gt;      CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.&lt;/P&gt;&lt;P&gt;**Checking for the Change in the data&lt;/P&gt;&lt;P&gt;      IF IT_VEKP1_TMP[] &amp;lt;&amp;gt; IT_VEKP1[].&lt;/P&gt;&lt;P&gt;        LOOP AT IT_VEKP1.&lt;/P&gt;&lt;P&gt;          READ TABLE IT_VEKP1_TMP WITH KEY EXIDV = IT_VEKP1-EXIDV.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;            IF IT_VEKP1_TMP &amp;lt;&amp;gt; IT_VEKP1.&lt;/P&gt;&lt;P&gt;              UPDATE VEKP SET ZZPROMDT = IT_VEKP1-ZZPROMDT&lt;/P&gt;&lt;P&gt;                              ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC&lt;/P&gt;&lt;P&gt;                            WHERE EXIDV = IT_VEKP1-EXIDV.&lt;/P&gt;&lt;P&gt;              IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                COMMIT WORK.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;        PERFORM GET_VEKP_DATA .&lt;/P&gt;&lt;P&gt;        CLEAR IT_VEKP1_TMP.&lt;/P&gt;&lt;P&gt;        REFRESH IT_VEKP1_TMP.&lt;/P&gt;&lt;P&gt;        IT_VEKP1_TMP[] = IT_VEKP1[].&lt;/P&gt;&lt;P&gt;        PERFORM POPULATE_FINAL_TABLE.&lt;/P&gt;&lt;P&gt;        PERFORM DISABLE_EDIT_FIELDS.&lt;/P&gt;&lt;P&gt;        PERFORM FORM_REFRESH.&lt;/P&gt;&lt;P&gt;        MESSAGE S002 WITH 'Data Saved'(011).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    do nothing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " event_ucomm1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Kiran Sure&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jun 2007 11:19:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378414#M527602</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-01T11:19:44Z</dc:date>
    </item>
    <item>
      <title>Re: problem with hadling grid values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378415#M527603</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Jun 2007 11:13:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-hadling-grid-values/m-p/2378415#M527603</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-04T11:13:03Z</dc:date>
    </item>
  </channel>
</rss>

