<?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: alv edit  list in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128114#M110944</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Check this code.....&lt;/P&gt;&lt;P&gt;for your use....i did this program with date edit....&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

REPORT ZTESTALV  NO STANDARD PAGE HEADING
                        LINE-SIZE  200
                        LINE-COUNT 58
                        MESSAGE-ID ZZ.


*---------------------------------------------------------------------*
*                        TYPE-POOLS                                   *
*---------------------------------------------------------------------*
TYPE-POOLS:SLIS.
*---------------------------------------------------------------------
*                Include for Data Declarations
*---------------------------------------------------------------------
INCLUDE ZTEST_TOP.
DATA: V_ERROR.
**Tables to Compare Before after the Data Change
DATA: IT_VEKP_TMP LIKE IT_VEKP OCCURS 0 WITH HEADER LINE,
      IT_VEKP1_TMP LIKE IT_VEKP1 OCCURS 0 WITH HEADER LINE,
      IT_FINAL_TMP LIKE IT_FINAL OCCURS 0 WITH HEADER LINE.
DATA: IT_OCRC LIKE ZSD_OC_HOLD OCCURS 0 WITH HEADER LINE.
*- Fieldcatalog
DATA: IT_FIELDCAT  TYPE SLIS_T_FIELDCAT_ALV,
      IT_FIELDCAT1  TYPE SLIS_T_FIELDCAT_ALV.
*- For Events
DATA:IT_EVENTS TYPE SLIS_T_EVENT.

DATA:  X_FIELDCAT  TYPE SLIS_FIELDCAT_ALV,
       X_FIELDCAT1  TYPE SLIS_FIELDCAT_ALV,
       X_LAYOUT    TYPE SLIS_LAYOUT_ALV,
       X_EVENTS    TYPE SLIS_ALV_EVENT.

*---------------------------------------------------------------------
*                Selection screen
*---------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_VBELN FOR V_LIKP-VBELN,
                S_VSTEL FOR V_LIKP-VSTEL,
                S_WERKS FOR V_LIPS-WERKS,
                S_WADAT FOR V_VBEP-WADAT,
                S_TRSPG FOR V_LIKP-TRSPG OBLIGATORY,
                S_OCHRC FOR V_VEKP-ZZOCHOLDRC,
                S_USERID FOR V_VBAK-ZZREP_USERID1.
SELECTION-SCREEN END OF BLOCK B1.
*---------------------------------------------------------------------
*                START-OF_SELECTION
*---------------------------------------------------------------------
START-OF-SELECTION.
  SELECT VBELN
         VSTEL
         LFDAT
         KUNNR
         FROM LIKP
         INTO TABLE IT_LIKP
         WHERE VBELN IN S_VBELN
          AND  VSTEL IN S_VSTEL
          AND  WADAT IN S_WADAT
          AND  WADAT_IST = '00000000'
          AND TRSPG IN S_TRSPG.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE I002 WITH 'NO DATA FOR THE SELECTION'.
  ENDIF.
**Populating the Delivery Item Data
  PERFORM GET_DEL_ITEM_DATA.
**Getting the PGI DATE &amp;amp; USERID
  PERFORM GET_USERID.
**Getting the Promise DATE &amp;amp; OC HOLD RC
  PERFORM GET_VEKP_DATA.
**get the Reason codes
  PERFORM SELECT_OCHOLDRC.
** Populating the Final Internaltable
  PERFORM POPULATE_FINAL_TABLE.

*---------------------------------------------------------------------
*                START-OF_SELECTION
*---------------------------------------------------------------------
END-OF-SELECTION.
**Populating the fieldcatalog
  PERFORM POPULATE_FIELDCATALOG.
**-ALV list Display
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM       = SY-REPID
      I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET'
      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
      IS_LAYOUT                = X_LAYOUT
      IT_FIELDCAT              = IT_FIELDCAT
      IT_EVENTS                = IT_EVENTS
    TABLES
      T_OUTTAB                 = IT_FINAL
    EXCEPTIONS
      PROGRAM_ERROR            = 1
      OTHERS                   = 2.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_DEL_ITEM_DATA
*&amp;amp;---------------------------------------------------------------------*
*       Populating the Delivery Item Data
*----------------------------------------------------------------------*
FORM GET_DEL_ITEM_DATA .
  IF NOT IT_LIKP[] IS INITIAL.
**-Getting the name of Ship-to-party
    SELECT KUNNR
          NAME1
          INTO TABLE IT_KNA1
          FROM KNA1
          FOR ALL ENTRIES IN IT_LIKP[]
          WHERE KUNNR = IT_LIKP-KUNNR.
**-Getting Delivery Item Data
    SELECT VBELN
           POSNR
           MATNR
           WERKS
           LFIMG
           ARKTX
           VGBEL
           VGPOS
           ZZCONPATH
           INTO TABLE IT_LIPS
           FROM LIPS
           FOR ALL ENTRIES IN IT_LIKP[]
           WHERE VBELN = IT_LIKP-VBELN
               AND WERKS IN S_WERKS.
  ENDIF.
ENDFORM.                    " GET_DEL_ITEM_DATA
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_userid
*&amp;amp;---------------------------------------------------------------------*
*       Getting the  USERID
*----------------------------------------------------------------------*
FORM GET_USERID .
  IF NOT IT_LIPS[]  IS INITIAL.
**-Getting the USERID
    SELECT VBELN
           ZZREP_USERID1
           INTO TABLE IT_VBAK
           FROM VBAK
           FOR ALL ENTRIES IN IT_LIPS[]
           WHERE VBELN = IT_LIPS-VGBEL
              AND ZZREP_USERID1 IN S_USERID.
  ENDIF.
ENDFORM.                    " get_userid

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  populate_final_table
*&amp;amp;---------------------------------------------------------------------*
*       Populating the Final Internaltable
*----------------------------------------------------------------------*
FORM POPULATE_FINAL_TABLE .
  CLEAR IT_FINAL.
  REFRESH IT_FINAL.
  SORT IT_VEKP_TMP BY ZZPROMDT ZZSONUM ZZOCHOLDRC.
 DELETE ADJACENT DUPLICATES FROM IT_VEKP_TMP COMPARING ZZPROMDT ZZSONUM
ZZOCHOLDRC.
  LOOP AT IT_LIPS.
    MOVE-CORRESPONDING IT_LIPS TO IT_FINAL.
    READ TABLE IT_LIKP WITH KEY VBELN = IT_LIPS-VBELN.
    IF SY-SUBRC = 0.
      IT_FINAL-VSTEL = IT_LIKP-VSTEL.
      IT_FINAL-LFDAT = IT_LIKP-LFDAT.
    ENDIF.
    READ TABLE IT_KNA1 WITH KEY KUNNR = IT_LIKP-KUNNR.
    IF SY-SUBRC = 0.
      IT_FINAL-NAME1 = IT_KNA1-NAME1.
    ENDIF.
    READ TABLE IT_VBAK WITH KEY VBELN = IT_LIPS-VGBEL.
    IF SY-SUBRC = 0.
      IT_FINAL-ZZREP_USERID1 = IT_VBAK-ZZREP_USERID1.
    ENDIF.
    READ TABLE IT_SONUM WITH KEY VGBEL = IT_LIPS-VGBEL
                                 VGPOS = IT_LIPS-VGPOS.
    IF SY-SUBRC = 0.
      LOOP AT IT_VEKP_TMP WHERE ZZSONUM = IT_SONUM-ZZSONUM.
        IF NOT IT_VEKP_TMP-ZZPROMDT+0(4) = '0000'.
          WRITE IT_VEKP_TMP-ZZPROMDT TO IT_FINAL-ZZPROMDT .
        ELSE.
          IT_FINAL-ZZPROMDT = '00/00/0000'.
        ENDIF.
        IT_FINAL-ZZOCHOLDRC = IT_VEKP_TMP-ZZOCHOLDRC.
        APPEND IT_FINAL.
      ENDLOOP.
      IF SY-SUBRC &amp;lt;&amp;gt; 0.
        IT_FINAL-ZZPROMDT = '00/00/0000'.
        IT_FINAL-ZZOCHOLDRC = ' '.
        IT_FINAL-FLAG = 'X'.
        APPEND IT_FINAL.
        CLEAR IT_FINAL.
      ENDIF.
    ENDIF.
  ENDLOOP.
  IF NOT IT_ZSDOCHOLD[] IS INITIAL.
    LOOP AT IT_FINAL.
      READ TABLE IT_ZSDOCHOLD WITH KEY ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
      IF SY-SUBRC = 0.
        IT_FINAL-ZZRCDESC = IT_ZSDOCHOLD-ZZRCDESC.
        MODIFY IT_FINAL.
      ENDIF.
    ENDLOOP.
  ENDIF.
  IT_FINAL_TMP[] = IT_FINAL[].
  CLEAR IT_FINAL.
ENDFORM.                    " populate_final_table
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  populate_fieldcatalog
*&amp;amp;---------------------------------------------------------------------*
*       Populating the fieldcatalog
*----------------------------------------------------------------------*
FORM POPULATE_FIELDCATALOG .

  DATA:L_POS TYPE I VALUE 1.
  CLEAR: L_POS.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Shpt'.
  X_FIELDCAT-FIELDNAME = 'VSTEL'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '4'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Con Path'.
  X_FIELDCAT-FIELDNAME = 'ZZCONPATH'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '8'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Plant'.
  X_FIELDCAT-FIELDNAME = 'WERKS'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '5'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.
  X_FIELDCAT-SELTEXT_M = 'Del Date'.
  X_FIELDCAT-FIELDNAME = 'LFDAT'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '10'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Prom Date'.
  X_FIELDCAT-FIELDNAME = 'ZZPROMDT'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '10'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-INPUT = 'X'.
  X_FIELDCAT-HOTSPOT = 'X'.
  X_FIELDCAT-DATATYPE = 'CHAR'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR  X_FIELDCAT.

  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Ship-To-Name'.
  X_FIELDCAT-FIELDNAME = 'NAME1'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '40'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'SalesOrder#'.
  X_FIELDCAT-FIELDNAME = 'VGBEL'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '10'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = 'X'.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Item'.
  X_FIELDCAT-FIELDNAME = 'VGPOS'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-OUTPUTLEN = '5'.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Material'.
  X_FIELDCAT-FIELDNAME = 'MATNR'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '18'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Materal Desc'.
  X_FIELDCAT-FIELDNAME = 'ARKTX'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '40'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'D.O.Item Qty'.
  X_FIELDCAT-FIELDNAME = 'LFIMG'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '13'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'RC'.
  X_FIELDCAT-FIELDNAME = 'ZZOCHOLDRC'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-EMPHASIZE = 'C700'.
  X_FIELDCAT-OUTPUTLEN = '3'.
  X_FIELDCAT-INPUT = 'X'.
  X_FIELDCAT-HOTSPOT = 'X'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.

  L_POS = L_POS + 1.
  X_FIELDCAT-SELTEXT_M = 'OC HOLD RC Desc'.
  X_FIELDCAT-FIELDNAME = 'ZZRCDESC'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-EMPHASIZE = 'C700'.
  X_FIELDCAT-OUTPUTLEN = '20'.
  X_FIELDCAT-INPUT = 'X'.
  X_FIELDCAT-HOTSPOT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Delivery'.
  X_FIELDCAT-FIELDNAME = 'VBELN'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '10'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = 'X'.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Item'.
  X_FIELDCAT-FIELDNAME = 'POSNR'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '5'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Rep User Id'.
  X_FIELDCAT-FIELDNAME = 'ZZREP_USERID1'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '11'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.

  X_LAYOUT-ZEBRA         = 'X'.
  REFRESH:IT_EVENTS.
  CLEAR:X_EVENTS,IT_EVENTS.

  X_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.
  X_EVENTS-FORM = 'TOP_OF_PAGE'.
  APPEND X_EVENTS TO IT_EVENTS.
  CLEAR X_EVENTS.
  X_EVENTS-NAME = SLIS_EV_END_OF_LIST.
  X_EVENTS-FORM = 'MODIFY_LIST'.
  APPEND X_EVENTS TO IT_EVENTS.
  CLEAR X_EVENTS.
ENDFORM.                    " populate_fieldcatalog
*---------------------------------------------------------------------
*                Top_of_page
*---------------------------------------------------------------------
FORM TOP_OF_PAGE.
* Call Steelcase Header
  FORMAT COLOR COL_HEADING INTENSIFIED ON.
  CALL FUNCTION 'Z_STEELCASE_HEADER'.
  FORMAT COLOR OFF.
ENDFORM.                    "top_of_page
*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  USER_COMMAND
*&amp;amp;--------------------------------------------------------------------*
*      For User Command
*---------------------------------------------------------------------*
FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
  DATA: L_ANS.
  DATA: L_SONUM LIKE VEKP-ZZSONUM.
  DATA: L_TABIX LIKE SY-TABIX.
  DATA : L_DATE1 LIKE VEKP-ZZPROMDT.
  CASE UCOMM.
**-When User Double Clicks
    WHEN '&amp;amp;IC1'.
      IF SELFIELD-TABINDEX &amp;lt;&amp;gt; 0.
**if user clicks on sales order
        IF SELFIELD-SEL_TAB_FIELD = 'IT_FINAL-VGBEL'.
          READ TABLE IT_FINAL INDEX SELFIELD-TABINDEX
                                          TRANSPORTING VGBEL.
          IF SY-SUBRC = 0.
            SET PARAMETER ID 'AUN' FIELD IT_FINAL-VGBEL.
          ENDIF.
          CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
        ENDIF.
**if user clicks on Delivery
        IF SELFIELD-SEL_TAB_FIELD = 'IT_FINAL-VBELN'.
          READ TABLE IT_FINAL INDEX SELFIELD-TABINDEX
                                          TRANSPORTING VBELN.
          IF SY-SUBRC = 0.
            SET PARAMETER ID 'VL' FIELD IT_FINAL-VBELN.
          ENDIF.
          CALL TRANSACTION 'VL02N' AND SKIP FIRST SCREEN.
        ENDIF.
**if user clicks on Order Control Hold Reason code
        IF SELFIELD-SEL_TAB_FIELD = 'IT_FINAL-ZZOCHOLDRC'
            OR SELFIELD-SEL_TAB_FIELD = 'IT_FINAL-ZZPROMDT'.
          READ TABLE IT_FINAL INDEX SELFIELD-TABINDEX
                                          TRANSPORTING
                                          VGBEL
                                          VGPOS
                                          ZZOCHOLDRC.
          IF SY-SUBRC = 0.
            PERFORM GET_HU_DATA.
            PERFORM POPULATE_FIELDCAT2.
            PERFORM LIST_DISPLAY.
          ENDIF.
        ENDIF.
      ENDIF.
**When User Press back Button
    WHEN 'BACK1'.
      CLEAR V_ERROR.
      LOOP AT IT_FINAL.
        READ TABLE IT_OCRC WITH KEY ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
        IF SY-SUBRC &amp;lt;&amp;gt; 0.
          IF NOT IT_FINAL-ZZOCHOLDRC IS INITIAL.
            V_ERROR = 'X'.
            EXIT.
          ENDIF.
        ENDIF.
      ENDLOOP.
**Checking for the Data Change
      IF IT_FINAL_TMP[] &amp;lt;&amp;gt; IT_FINAL[].
        PERFORM CONFIRM_BEFORE_LEAVE CHANGING L_ANS.
        IF L_ANS = '1' .
          IF V_ERROR IS INITIAL.
            LOOP AT IT_FINAL.
              L_TABIX = SY-TABIX.
              READ TABLE IT_FINAL_TMP INDEX L_TABIX.
              IF SY-SUBRC  = 0.
                IF IT_FINAL &amp;lt;&amp;gt; IT_FINAL_TMP.
*-Validate Date Field.
                  PERFORM VALIDATE_AND_CONVERT_DATE.
                 CONCATENATE IT_FINAL-VGBEL IT_FINAL-VGPOS INTO L_SONUM.
                  READ TABLE IT_VEKP WITH KEY
                                     ZZSONUM    = L_SONUM
                                   ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.
                  IF SY-SUBRC = 0.
                    CLEAR L_DATE1.
                    L_DATE1 = IT_FINAL-ZZPROMDT+6(4).
                CONCATENATE L_DATE1 IT_FINAL-ZZPROMDT+0(2) INTO L_DATE1.
                CONCATENATE L_DATE1 IT_FINAL-ZZPROMDT+3(2) INTO L_DATE1.
**Modifying the VEKP table based on changes
                    UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC
                                    ZZPROMDT =  L_DATE1
                                  WHERE       ZZSONUM = IT_VEKP-ZZSONUM
                               AND ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.
                    IF SY-SUBRC = 0.
                      COMMIT WORK.
                    ENDIF.
**Modifying the ZSD_OC_HOLD table based on changes
                    IF IT_FINAL-ZZRCDESC &amp;lt;&amp;gt; IT_FINAL_TMP-ZZRCDESC.
                    UPDATE ZSD_OC_HOLD SET ZZRCDESC = IT_FINAL-ZZRCDESC
                                 WHERE ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
                      IF SY-SUBRC = 0.
                        COMMIT WORK.
                      ENDIF.
                    ENDIF.
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDLOOP.
            LEAVE TO SCREEN 0.
          ELSE.
            PERFORM VALIDATE_REASON_CODE.
            MESSAGE I002 WITH 'Please enter valid Reason Codes'.
          ENDIF.
        ELSEIF L_ANS = '2'.
          LEAVE TO SCREEN 0.
        ENDIF.
      ELSE.
        LEAVE TO SCREEN 0.
      ENDIF.
    WHEN 'SAVE'.
      PERFORM VALIDATE_REASON_CODE.
**CHECKING FOR THE DATA CHANGE
      IF IT_FINAL_TMP[] &amp;lt;&amp;gt; IT_FINAL[].
        IF V_ERROR IS INITIAL.
          LOOP AT IT_FINAL.
            L_TABIX = SY-TABIX.
            READ TABLE IT_FINAL_TMP INDEX L_TABIX.
            IF SY-SUBRC  = 0.
              IF IT_FINAL &amp;lt;&amp;gt; IT_FINAL_TMP.
*-Validate Date Field.
                PERFORM VALIDATE_AND_CONVERT_DATE.
                CONCATENATE IT_FINAL-VGBEL IT_FINAL-VGPOS INTO L_SONUM.
                READ TABLE IT_VEKP WITH KEY
                                   ZZSONUM    = L_SONUM
                                   ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.
                IF SY-SUBRC = 0.
                  CLEAR L_DATE1.
                  L_DATE1 = IT_FINAL-ZZPROMDT+6(4).
                CONCATENATE L_DATE1 IT_FINAL-ZZPROMDT+0(2) INTO L_DATE1.
                CONCATENATE L_DATE1 IT_FINAL-ZZPROMDT+3(2) INTO L_DATE1.
**Modifying the VEKP table based on changes
                  UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC
                                  ZZPROMDT =  L_DATE1
                                  WHERE       ZZSONUM = IT_VEKP-ZZSONUM
                               AND ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.
                  IF SY-SUBRC = 0.
                    COMMIT WORK.
                  ENDIF.
**Modifying the ZSD_OC_HOLD table based on changes
                  IF IT_FINAL-ZZRCDESC &amp;lt;&amp;gt; IT_FINAL_TMP-ZZRCDESC.
                    UPDATE ZSD_OC_HOLD SET ZZRCDESC = IT_FINAL-ZZRCDESC
                                 WHERE ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
                    IF SY-SUBRC = 0.
                      COMMIT WORK.
                    ENDIF.
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDLOOP.
          PERFORM GET_VEKP_DATA .
          PERFORM POPULATE_FINAL_TABLE.
          MESSAGE S002 WITH 'Data Saved'.
        ELSE.
          MESSAGE I002 WITH 'Please enter valid Reason Codes'.
        ENDIF.
      ENDIF.
    WHEN 'ENTER'.
      DATA: L_TABIX1 TYPE SY-TABIX.
      PERFORM VALIDATE_REASON_CODE .
      IF V_ERROR IS INITIAL.
        CLEAR L_TABIX1.
        LOOP AT IT_FINAL.
          L_TABIX1 = SY-TABIX.
          READ TABLE IT_OCRC WITH KEY ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
          IF SY-SUBRC = 0.
            IT_FINAL-ZZRCDESC = IT_OCRC-ZZRCDESC.
            MODIFY IT_FINAL INDEX L_TABIX1 TRANSPORTING ZZRCDESC.
          ENDIF.
        ENDLOOP.
      ENDIF.
  ENDCASE.
  SELFIELD-REFRESH = 'X'.
ENDFORM.                    "USER_COMMAND
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_vekp_data
*&amp;amp;---------------------------------------------------------------------*
*       Populating Promise Date and Order Control Hold Reason Code
*----------------------------------------------------------------------*
FORM GET_VEKP_DATA .
  CLEAR: IT_SONUM,IT_VEKP,IT_VEKP_TMP.
  REFRESH: IT_SONUM,IT_VEKP,IT_VEKP_TMP.
  LOOP AT IT_LIPS.
    MOVE-CORRESPONDING IT_LIPS TO IT_SONUM.
    CONCATENATE IT_LIPS-VGBEL IT_LIPS-VGPOS INTO IT_SONUM-ZZSONUM.
    APPEND IT_SONUM.
    CLEAR IT_SONUM.
  ENDLOOP.
  IF NOT IT_SONUM[] IS INITIAL.
    SELECT EXIDV
           ZZSONUM
           ZZPROMDT
           ZZOCHOLDRC
          INTO TABLE IT_VEKP
          FROM VEKP
          FOR ALL ENTRIES IN IT_SONUM[]
          WHERE ZZSONUM = IT_SONUM-ZZSONUM
             AND ZZOCHOLDRC IN S_OCHRC.
    IF SY-SUBRC = 0.
      IT_VEKP_TMP[] = IT_VEKP[].
      SELECT ZZOCHOLDRC
             ZZRCDESC
             INTO TABLE IT_ZSDOCHOLD
             FROM ZSD_OC_HOLD
             FOR ALL ENTRIES IN IT_VEKP[]
             WHERE ZZOCHOLDRC = IT_VEKP-ZZOCHOLDRC.
    ENDIF.
  ENDIF.
ENDFORM.                    " get_vekp_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  populate_fieldcat2
*&amp;amp;---------------------------------------------------------------------*
*      Populating the Fieldcatalog
*----------------------------------------------------------------------*
FORM POPULATE_FIELDCAT2 .
  CLEAR: IT_FIELDCAT1,X_FIELDCAT1.
  REFRESH IT_FIELDCAT1.
  DATA:L_POS TYPE I VALUE 1.
  CLEAR: L_POS.
  L_POS = L_POS + 1.

  X_FIELDCAT1-SELTEXT_L = 'External Handling Unit Identification'.
  X_FIELDCAT1-FIELDNAME = 'EXIDV'.
  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.
  X_FIELDCAT1-COL_POS    = L_POS.
  X_FIELDCAT1-INPUT = ' '.
  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT1.
  L_POS = L_POS + 1.

  X_FIELDCAT1-SELTEXT_L = 'Promise Date'.
  X_FIELDCAT1-FIELDNAME = 'ZZPROMDT'.
  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.
  X_FIELDCAT1-COL_POS    = L_POS.
  X_FIELDCAT1-INPUT = 'X'.
  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT1.
  L_POS = L_POS + 1.

  X_FIELDCAT1-SELTEXT_L = 'Order Control Hold Reason Code'.
  X_FIELDCAT1-FIELDNAME = 'ZZOCHOLDRC'.
  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.
  X_FIELDCAT1-COL_POS    = L_POS.
  X_FIELDCAT1-INPUT = 'X'.
  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT1.
ENDFORM.                    " populate_fieldcat2
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  list_display
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM LIST_DISPLAY .
**-ALV list Display
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM       = SY-REPID
      I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET1'
      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND1'
      IS_LAYOUT                = X_LAYOUT
      IT_FIELDCAT              = IT_FIELDCAT1
      IT_EVENTS                = IT_EVENTS
    TABLES
      T_OUTTAB                 = IT_VEKP1
    EXCEPTIONS
      PROGRAM_ERROR            = 1
      OTHERS                   = 2.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " list_display
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_HU_DATA
*&amp;amp;---------------------------------------------------------------------*
*      Get Handling Units Data
*----------------------------------------------------------------------*
FORM GET_HU_DATA .
  CLEAR IT_VEKP1.
  REFRESH IT_VEKP1.
  READ TABLE IT_SONUM WITH KEY VGBEL = IT_FINAL-VGBEL
                               VGPOS = IT_FINAL-VGPOS.
  IF SY-SUBRC = 0.
    LOOP AT IT_VEKP WHERE ZZSONUM = IT_SONUM-ZZSONUM
                     AND  ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
      IT_VEKP1-EXIDV  = IT_VEKP-EXIDV.
      IT_VEKP1-ZZSONUM = IT_VEKP-ZZSONUM.
      IF NOT IT_VEKP-ZZPROMDT+0(4) = '0000'.
        WRITE IT_VEKP-ZZPROMDT TO IT_VEKP1-ZZPROMDT .
      ELSE.
        IT_VEKP1-ZZPROMDT = '00/00/0000'.
      ENDIF.
      IT_VEKP1-ZZOCHOLDRC = IT_VEKP-ZZOCHOLDRC.
      APPEND IT_VEKP1.
    ENDLOOP.
  ENDIF.
  IT_VEKP1_TMP[] = IT_VEKP1[].
ENDFORM.                    " GET_HU_DATA
*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  USER_COMMAND1
*&amp;amp;--------------------------------------------------------------------*
*      For User Command1
*---------------------------------------------------------------------*
FORM USER_COMMAND1 USING UCOMM LIKE SY-UCOMM SELFIELD TYPE
                                                         SLIS_SELFIELD.
  DATA: L_ANS,
        L_DATE LIKE VEKP-ZZPROMDT.
  CASE UCOMM.
**When User Press Back
    WHEN 'BACK1'.
      CLEAR V_ERROR.
      LOOP AT IT_VEKP1.
        READ TABLE IT_OCRC WITH KEY ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC.
        IF SY-SUBRC &amp;lt;&amp;gt; 0.
          IF NOT IT_VEKP1-ZZOCHOLDRC IS INITIAL.
            V_ERROR = 'X'.
            EXIT.
          ENDIF.
        ENDIF.
      ENDLOOP.
**Checking for the Change in the data
      IF IT_VEKP1_TMP[] &amp;lt;&amp;gt; IT_VEKP1[].
        PERFORM CONFIRM_BEFORE_LEAVE CHANGING L_ANS.
        IF L_ANS = '1'.
          IF V_ERROR IS INITIAL.
            LOOP AT IT_VEKP1.
              READ TABLE IT_VEKP1_TMP WITH KEY EXIDV = IT_VEKP1-EXIDV.
              IF SY-SUBRC = 0.
                IF IT_VEKP1_TMP &amp;lt;&amp;gt; IT_VEKP1.
                  CLEAR L_DATE.
                  L_DATE = IT_VEKP1-ZZPROMDT+6(4).
                  CONCATENATE L_DATE IT_VEKP1-ZZPROMDT+0(2) INTO L_DATE.
                  CONCATENATE L_DATE IT_VEKP1-ZZPROMDT+3(2) INTO L_DATE.
                  UPDATE VEKP SET ZZPROMDT = L_DATE
                                  ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC
                                WHERE EXIDV = IT_VEKP1-EXIDV.
                  IF SY-SUBRC = 0.
                    COMMIT WORK.
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDLOOP.
            PERFORM GET_VEKP_DATA .
            PERFORM POPULATE_FINAL_TABLE.
            SELFIELD-REFRESH = 'X'.
            LEAVE TO SCREEN 0.
          ELSE.
            PERFORM VALIDATE_REASON_CODE1.
            MESSAGE I002 WITH 'Please enter valid Reason Codes'.
          ENDIF.
        ELSEIF L_ANS = '2'.
          LEAVE TO SCREEN 0.
        ENDIF.
      ELSE.
        LEAVE TO SCREEN 0.
      ENDIF.
    WHEN 'SAVE'.
      PERFORM VALIDATE_REASON_CODE1.
**Checking for the Change in the data
      IF IT_VEKP1_TMP[] &amp;lt;&amp;gt; IT_VEKP1[].
        IF V_ERROR IS INITIAL.
          LOOP AT IT_VEKP1.
            READ TABLE IT_VEKP1_TMP WITH KEY EXIDV = IT_VEKP1-EXIDV.
            IF SY-SUBRC = 0.
              IF IT_VEKP1_TMP &amp;lt;&amp;gt; IT_VEKP1.
                CLEAR L_DATE.
                L_DATE = IT_VEKP1-ZZPROMDT+6(4).
                CONCATENATE L_DATE IT_VEKP1-ZZPROMDT+0(2) INTO L_DATE.
                CONCATENATE L_DATE IT_VEKP1-ZZPROMDT+3(2) INTO L_DATE.
                UPDATE VEKP SET ZZPROMDT = L_DATE
                                ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC
                              WHERE EXIDV = IT_VEKP1-EXIDV.
                IF SY-SUBRC = 0.
                  COMMIT WORK.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDLOOP.
          PERFORM GET_VEKP_DATA .
          CLEAR IT_VEKP1_TMP.
          REFRESH IT_VEKP1_TMP.
          IT_VEKP1_TMP[] = IT_VEKP1[].
          PERFORM POPULATE_FINAL_TABLE.
          SELFIELD-REFRESH = 'X'.
          MESSAGE S002 WITH 'Data Saved'.
        ELSE.
          MESSAGE I002 WITH 'Please enter valid Reason Codes'.
        ENDIF.
      ENDIF.
    WHEN 'ENTER'.
      PERFORM VALIDATE_REASON_CODE1.
  ENDCASE.
ENDFORM.                    "USER_COMMAND1
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PF_STATUS_SET
*&amp;amp;---------------------------------------------------------------------*
*       PF Satatus for first List
*----------------------------------------------------------------------*
FORM PF_STATUS_SET USING    P_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STANDARD' EXCLUDING P_EXTAB.
ENDFORM.                    "PF_STATUS_SET
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PF_STATUS_SET1
*&amp;amp;---------------------------------------------------------------------*
*       PF Satatus for Second list
*----------------------------------------------------------------------*
FORM PF_STATUS_SET1 USING    P_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STANDARD' EXCLUDING P_EXTAB.
ENDFORM.                    "PF_STATUS_SET
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  CONFIRM_BEFORE_LEAVE
*&amp;amp;---------------------------------------------------------------------*
*       Popup for Confirm
*----------------------------------------------------------------------*
FORM CONFIRM_BEFORE_LEAVE  CHANGING P_ANS.
  CALL FUNCTION 'POPUP_TO_CONFIRM'
         EXPORTING
             TITLEBAR              = 'Confirm'
         TEXT_QUESTION         = 'Do you wish to save your data first?'
             TEXT_BUTTON_1         = 'Yes'
             ICON_BUTTON_1         = 'ICON_OKAY'
             TEXT_BUTTON_2         = 'No'
             ICON_BUTTON_2         = 'ICON_CANCEL'
             DEFAULT_BUTTON        = '1'
             DISPLAY_CANCEL_BUTTON = 'X'
             START_COLUMN          = 25
             START_ROW             = 6
        IMPORTING
             ANSWER                = P_ANS
        EXCEPTIONS
             TEXT_NOT_FOUND        = 1
             OTHERS                = 2.
ENDFORM.                    " CONFIRM_BEFORE_LEAVE
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  VALIDATE_AND_CONVERT_DATE
*&amp;amp;---------------------------------------------------------------------*
*       Validating and Converting the date
*----------------------------------------------------------------------*
FORM VALIDATE_AND_CONVERT_DATE .
  DATA : L_DATE LIKE SY-DATUM.
  CALL FUNCTION 'CONVERT_DATE_INPUT'
    EXPORTING
      INPUT                     = IT_FINAL-ZZPROMDT
    IMPORTING
      OUTPUT                    = L_DATE
    EXCEPTIONS
      PLAUSIBILITY_CHECK_FAILED = 1
      WRONG_FORMAT_IN_INPUT     = 2
      OTHERS                    = 3.
  IF SY-SUBRC = 0.
    WRITE L_DATE TO IT_FINAL-ZZPROMDT.
    MODIFY IT_FINAL.
  ENDIF.
ENDFORM.                    " VALIDATE_AND_CONVERT_DATE

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  MODIFY_LIST
*&amp;amp;---------------------------------------------------------------------*
*      Modify the Report
*----------------------------------------------------------------------*
FORM MODIFY_LIST.
  DATA: L_LINES TYPE I,
        L_FLAG.
  CLEAR IT_NODATA. REFRESH IT_NODATA.
  LOOP AT IT_FINAL WHERE FLAG = 'X'.
    IT_NODATA-IND = SY-TABIX + 6.
    APPEND IT_NODATA.
    CLEAR IT_NODATA.
  ENDLOOP.
  DESCRIBE TABLE IT_FINAL LINES L_LINES.
  L_LINES  = L_LINES + 6.
  DO L_LINES TIMES.
    READ TABLE IT_NODATA WITH KEY IND = SY-INDEX.
    IF SY-SUBRC = 0.
      READ LINE SY-INDEX INDEX SY-LSIND.
      IF SY-SUBRC = 0.
        MODIFY LINE SY-INDEX INDEX SY-LSIND
                   FIELD FORMAT  IT_FINAL-ZZPROMDT  INPUT OFF COLOR 6
                                 IT_FINAL-ZZOCHOLDRC  INPUT OFF COLOR 6
                                 IT_FINAL-ZZRCDESC  INPUT OFF COLOR 6.
      ENDIF.
    ENDIF.
  ENDDO.
ENDFORM.                    "MODIFY_LIST
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  select_OCHOLDRC
*&amp;amp;---------------------------------------------------------------------*
*       Get ALL OC HOLD RC
*----------------------------------------------------------------------*
FORM SELECT_OCHOLDRC .
  SELECT *
         FROM ZSD_OC_HOLD
         INTO TABLE IT_OCRC.
ENDFORM.                    " select_OCHOLDRC
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  validate_reason_code
*&amp;amp;---------------------------------------------------------------------*
*       validation of Reason Code
*----------------------------------------------------------------------*
FORM VALIDATE_REASON_CODE.
  CLEAR V_ERROR.
  LOOP AT IT_FINAL.
    READ TABLE IT_OCRC WITH KEY ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
    IF SY-SUBRC = 0.

    ELSE.
      IF NOT IT_FINAL-ZZOCHOLDRC IS INITIAL.
        V_ERROR = 'X'.
       MESSAGE I002 WITH 'Reason code' IT_FINAL-ZZOCHOLDRC 'is invalid'.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " validate_reason_code
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  validate_reason_code1
*&amp;amp;---------------------------------------------------------------------*
*       validation of Reason Code1
*----------------------------------------------------------------------*
FORM VALIDATE_REASON_CODE1.
  CLEAR V_ERROR.
  LOOP AT IT_VEKP1.
    READ TABLE IT_OCRC WITH KEY ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC.
    IF SY-SUBRC = 0.

    ELSE.
      IF NOT IT_VEKP1-ZZOCHOLDRC IS INITIAL.
        V_ERROR = 'X'.
       MESSAGE I002 WITH 'Reason code' IT_VEKP1-ZZOCHOLDRC 'is invalid'.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " validate_reason_code1&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Vijay Babu Dudla&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 06 Jan 2006 13:37:07 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-01-06T13:37:07Z</dc:date>
    <item>
      <title>alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128101#M110931</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 have define date field in internal table with sa-datum,&lt;/P&gt;&lt;P&gt;this field editable in list, but it is storing internal, i  have define the 2 two  date fields , how to handle this coding pls send me&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;santha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 11:37:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128101#M110931</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T11:37:07Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128102#M110932</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;Plz be clear about your requirement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Raj&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 11:38:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128102#M110932</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T11:38:09Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128103#M110933</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;this fields are not storing in final internal table&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 11:38:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128103#M110933</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T11:38:55Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128104#M110934</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;pl be more clear in the requirement&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;u mean to say that after editing it is not storing???&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: chandrasekhar jagarlamudi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 11:39:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128104#M110934</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T11:39:13Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128105#M110935</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;  X_FIELDCAT-COLTEXT = 'Prom Date'(016).
  X_FIELDCAT-FIELDNAME = 'ZZDATE'. "DATE FIELD
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '10'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-EDIT = 'X'.
&amp;lt;b&amp;gt;  X_FIELDCAT-DATATYPE = 'DATS'.  "MUST
  X_FIELDCAT-INTTYPE = 'D'.      "MUST
  X_FIELDCAT-REF_TABLE = 'VEKP'.  "REF TABLE
  X_FIELDCAT-REF_FIELD = 'ZZDATE. "REF FIELD&amp;lt;/b&amp;gt;
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR  X_FIELDCAT.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;did you mentioned your fieldcat for those dates like this..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 11:43:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128105#M110935</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T11:43:27Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128106#M110936</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ARe you using Noraml ALV /ALV GRID or ALV OO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please let us know..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VIjay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 11:45:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128106#M110936</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T11:45:55Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128107#M110937</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi, &lt;/P&gt;&lt;P&gt;types: begin of TY_FINAL,&lt;/P&gt;&lt;P&gt;       CREDATE         type SY-DATUM, "SY-DATUM,&lt;/P&gt;&lt;P&gt;       DOCNUM(5)       type C,&lt;/P&gt;&lt;P&gt;       PERSON(35)      type C,&lt;/P&gt;&lt;P&gt;       TKNUM           type TKNUM,&lt;/P&gt;&lt;P&gt;       NAME1           type NAME1,&lt;/P&gt;&lt;P&gt;       ORT01           type ORT01,&lt;/P&gt;&lt;P&gt;       VBELN           type VBELN,&lt;/P&gt;&lt;P&gt;       AGENT_PNO(4)    type C,&lt;/P&gt;&lt;P&gt;       AGENT(10)       type C,&lt;/P&gt;&lt;P&gt;       TO_ORDER(7)     type C,&lt;/P&gt;&lt;P&gt;       INCO1           type INCO1,&lt;/P&gt;&lt;P&gt;       INCO2           type INCO2,&lt;/P&gt;&lt;P&gt;       LCNUM           type LCNUM,&lt;/P&gt;&lt;P&gt;       VSART           type VSART,&lt;/P&gt;&lt;P&gt;       DATXA           type DATXA,&lt;/P&gt;&lt;P&gt;       LOADING(10)     type C,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      DATLOAD         type CHAR10,  "SY-DATUM,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      SHIPDATE        type CHAR10,  "SY-DATUM,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       DATLOAD         type erdat,&lt;/P&gt;&lt;P&gt;       SHIPDATE        type erdat,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       ABLAD           type ABLAD,&lt;/P&gt;&lt;P&gt;       SHIPLOAD        type C,&lt;/P&gt;&lt;P&gt;       IMPORT          TYPE C,&lt;/P&gt;&lt;P&gt;       VIA(10)         type C,&lt;/P&gt;&lt;P&gt;       PORT(10)        type C,&lt;/P&gt;&lt;P&gt;       MARKS(13)       type C,&lt;/P&gt;&lt;P&gt;       PRO_DESCR(10)   type C,&lt;/P&gt;&lt;P&gt;       NTGEW           type NTGEW,&lt;/P&gt;&lt;P&gt;       BRGEW           type BRGEW,&lt;/P&gt;&lt;P&gt;       NOTE(15)        type C,&lt;/P&gt;&lt;P&gt;       WH_SH_DOCU(15)  type C,&lt;/P&gt;&lt;P&gt;       WHEN_SHIP(15)   type C,&lt;/P&gt;&lt;P&gt;       ENCLOSURE(10)   type C,&lt;/P&gt;&lt;P&gt;       ZTERM           type VBRK-ZTERM,&lt;/P&gt;&lt;P&gt;       VTEXT           type VTEXT,&lt;/P&gt;&lt;P&gt;       BOX             type C,&lt;/P&gt;&lt;P&gt;       end of TY_FINAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have deifine the internal table, i am editing fields in alv list, after i want all fields save the final internal table, type char fields are storing, but date fields not storing,&lt;/P&gt;&lt;P&gt; i am using the reuse_alv_list_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;santha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 11:46:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128107#M110937</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T11:46:02Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128108#M110938</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;my coding this like&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form OUTPUT_ALV .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if IT_FIELDCAT is initial.&lt;/P&gt;&lt;P&gt;    perform FIELD_FILL using IT_FIELDCAT.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform SET_LAYOUT changing IS_LAYOUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh IT_EVENTTAB.&lt;/P&gt;&lt;P&gt;  perform BUILD_EVENTS changing IT_EVENTTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;  exporting&lt;/P&gt;&lt;P&gt;      I_CALLBACK_PROGRAM             = SY-REPID&lt;/P&gt;&lt;P&gt;    I_CALLBACK_PF_STATUS_SET       = c_pf_stat&lt;/P&gt;&lt;P&gt;      I_CALLBACK_USER_COMMAND        = 'USER_COMMAND'&lt;/P&gt;&lt;P&gt;      IS_LAYOUT                      = IS_LAYOUT&lt;/P&gt;&lt;P&gt;      IT_FIELDCAT                    = IT_FIELDCAT[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IT_EVENTS                      = IT_EVENTTAB[]&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      I_SAVE                         = 'A'&lt;/P&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      T_OUTTAB                       = IT_FINAL&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PROGRAM_ERROR                  = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                         = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  if SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " output_alv&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; Form Name    : PF_STATUS_SET&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Description  : Assigning the user defined status.&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;&lt;/P&gt;&lt;P&gt;form PF_STATUS_SET using RT_EXTAB type SLIS_T_EXTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  set pf-status 'PFSTATUS1' excluding RT_EXTAB.&lt;/P&gt;&lt;P&gt;  clear RT_EXTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " STATUS_SET&lt;/P&gt;&lt;P&gt;&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  FIELD_FILL&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_PT_FIELDCAT  text&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 FIELD_FILL using PT_FIELDCAT type SLIS_T_FIELDCAT_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data : LS_FIELDCAT type SLIS_FIELDCAT_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'CREDATE'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-101.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'PERSON'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-103.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'TKNUM'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'TKNUM'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'VTTK'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-104.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'NAME1'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'NAME1'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'KNA1'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  'CONIGNEE NAME'.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'ORT01'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'ORT01'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'KNA1'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  'ADDRESS'.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'VBELN'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'VBELN'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'VBRK'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-106.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'AGENT_PNO'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-107.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'AGENT'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-108.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'TO_ORDER'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-109.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'INCO1'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'INCO1'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'VBRK'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-110.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'ZTERM'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'ZTERM'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'VBRK'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-111.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'LCNUM'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'LCNUM'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'VBRK'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-112.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'VSART'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'VSART'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'VTTK'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-113.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'DATXA'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-REF_FIELDNAME = 'DATXA'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'RV86E'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-114.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'LOADING'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-115.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'DATLOAD'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'ERDAT'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'VBRK'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_L     =  TEXT-116.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'SHIPDATE'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME     = 'SY-DATUM'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-117.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'ABLAD'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'ABLAD'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'KNVA'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-118.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'SHIPLAOD'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-119.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'IMPORT'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-120.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'VIA'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-121.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'PORT'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-122.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'MARKS'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-123.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'PRO_DESCR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-124.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'BRGEW'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'BRGEW'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'VBRP'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-125.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'NTGEW'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_FIELDNAME = 'NTGEW'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-REF_TABNAME   = 'VBRP'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-125.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'NOTE'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-126.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'WH_SH_DOCU'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-127.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'WHEN_SHIP'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-128.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME     = 'ENCLOSURE'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-INPUT         = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-EDIT          = 'X'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-SELTEXT_L     =  TEXT-129.&lt;/P&gt;&lt;P&gt;  append LS_FIELDCAT to PT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " FIELD_FILL&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_LAYOUT&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_IS_LAYOUT  text&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_LAYOUT changing LS_LAYOUT type SLIS_LAYOUT_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear LS_LAYOUT.&lt;/P&gt;&lt;P&gt;  LS_LAYOUT-ZEBRA = 'X'.&lt;/P&gt;&lt;P&gt;  LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.&lt;/P&gt;&lt;P&gt;  LS_LAYOUT-BOX_FIELDNAME = 'BOX'.&lt;/P&gt;&lt;P&gt;  LS_LAYOUT-BOX_TABNAME  = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " SET_LAYOUT&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  BUILD_EVENTS&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_IT_EVENTTAB  text&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_EVENTS  changing P_IT_EVENTTAB type SLIS_T_EVENT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Function call to retrieve all the existing events&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      I_LIST_TYPE = 0&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      ET_EVENTS   = P_IT_EVENTTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table P_IT_EVENTTAB into IS_EVENTTAB&lt;/P&gt;&lt;P&gt;              with key NAME = SLIS_EV_PF_STATUS_SET.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      move c_pf_stat to IS_EVENTTAB-FORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IS_EVENTTAB-FORM = 'PF_STATUS_SET'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    modify P_IT_EVENTTAB from IS_EVENTTAB&lt;/P&gt;&lt;P&gt;    transporting FORM where NAME = SLIS_EV_PF_STATUS_SET.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table P_IT_EVENTTAB into IS_EVENTTAB&lt;/P&gt;&lt;P&gt;            with key NAME = SLIS_EV_USER_COMMAND.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------Catching user command event&lt;/P&gt;&lt;P&gt;    IS_EVENTTAB-FORM = 'USER_COMMAND'.&lt;/P&gt;&lt;P&gt;    modify P_IT_EVENTTAB from IS_EVENTTAB&lt;/P&gt;&lt;P&gt;    transporting FORM where NAME = SLIS_EV_USER_COMMAND.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " BUILD_EVENTS&lt;/P&gt;&lt;P&gt;&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  user_command&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 USER_COMMAND using L_UCOMM like SY-UCOMM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                       LS_SELFIELD type SLIS_SELFIELD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  case L_UCOMM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when 'ENTR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ITT_FINAL[] = IT_FINAL[].&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      loop at IT_FINAL into IS_FINAL where BOX = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       read table IT_FINAL into IS_FINAL with key BOX = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;       if LS_SELFIELD-FIELDNAME = 'DATLOAD'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         call function 'CONVERT_DATE_TO_INTERNAL'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           exporting&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             DATE_EXTERNAL            = LS_SELFIELD-VALUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           importing&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             DATE_INTERNAL            = IS_FINAL-DATLOAD&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           exceptions&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             DATE_EXTERNAL_IS_INVALID = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             others                   = 2.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        modify IT_FINAL from IS_FINAL transporting DATLOAD.&lt;/P&gt;&lt;P&gt;                                             "index LS_SELFIELD-TABINDEX&lt;/P&gt;&lt;P&gt;        clear  IS_FINAL.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when 'DISP'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     set pf-status 'PF_STATUS'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     LEAVE TO LIST-PROCESSING.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     new-page.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform DISP_DATA1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lv_display_page = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " user_command&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;santha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 11:50:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128108#M110938</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T11:50:31Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128109#M110939</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;while modifying &lt;/P&gt;&lt;P&gt;modify IT_FINAL from IS_FINAL transporting DATLOAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;u r transporting only DATALOAD , try to transport date fields also here&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 11:55:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128109#M110939</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T11:55:55Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128110#M110940</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;form USER_COMMAND using L_UCOMM like SY-UCOMM

LS_SELFIELD type SLIS_SELFIELD.

case L_UCOMM.

when 'ENTR'.
CALL FUNCTION 'REUSE_ALV_LIST_LAYOUT_INFO_GET'

 TABLES
   ET_OUTTAB                        = IT_OUTTAB

 EXCEPTIONS
   NO_INFOS                         = 1
   PROGRAM_ERROR                    = 2
   OTHERS                           = 3
          .
IF SY-SUBRC &amp;lt;&amp;gt; 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;endcase.
endform.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;now check in it_outab in that you can see the data.&lt;/P&gt;&lt;P&gt;and now conver tand do what ever you want..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 12:07:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128110#M110940</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T12:07:24Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128111#M110941</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;case L_UCOMM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when 'ENTR'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_LIST_LAYOUT_INFO_GET'&lt;/P&gt;&lt;P&gt; TABLES&lt;/P&gt;&lt;P&gt;   ET_OUTTAB                        = it_final&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   NO_INFOS                         = 1&lt;/P&gt;&lt;P&gt;   PROGRAM_ERROR                    = 2&lt;/P&gt;&lt;P&gt;   OTHERS                           = 3&lt;/P&gt;&lt;P&gt;          .&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;&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;       modify IT_FINAL from IS_FINAL transporting DATLOAD SHIPDATE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                            "index LS_SELFIELD-&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*TABINDEX&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       clear  IS_FINAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endloop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it is not coming , i am trying, after enter on list, char fields are stoing the it_final, but date firlds are not storing, i thick date not matching, pls give me details of coding.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;santha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 13:07:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128111#M110941</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T13:07:36Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128112#M110942</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;in normal alv, this is the problem generally we face.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what you do is give 10 chars field, and convert it to date format in the usercommand. and you will be able to see that now.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 13:11:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128112#M110942</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T13:11:58Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128113#M110943</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;that is working, but my requirement only date format enter on the list,  i want display date and save to file or print, pls give me ASAP, how to change the date chat to date foramt, give me  with  code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;santha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 13:30:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128113#M110943</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T13:30:03Z</dc:date>
    </item>
    <item>
      <title>Re: alv edit  list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128114#M110944</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Check this code.....&lt;/P&gt;&lt;P&gt;for your use....i did this program with date edit....&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

REPORT ZTESTALV  NO STANDARD PAGE HEADING
                        LINE-SIZE  200
                        LINE-COUNT 58
                        MESSAGE-ID ZZ.


*---------------------------------------------------------------------*
*                        TYPE-POOLS                                   *
*---------------------------------------------------------------------*
TYPE-POOLS:SLIS.
*---------------------------------------------------------------------
*                Include for Data Declarations
*---------------------------------------------------------------------
INCLUDE ZTEST_TOP.
DATA: V_ERROR.
**Tables to Compare Before after the Data Change
DATA: IT_VEKP_TMP LIKE IT_VEKP OCCURS 0 WITH HEADER LINE,
      IT_VEKP1_TMP LIKE IT_VEKP1 OCCURS 0 WITH HEADER LINE,
      IT_FINAL_TMP LIKE IT_FINAL OCCURS 0 WITH HEADER LINE.
DATA: IT_OCRC LIKE ZSD_OC_HOLD OCCURS 0 WITH HEADER LINE.
*- Fieldcatalog
DATA: IT_FIELDCAT  TYPE SLIS_T_FIELDCAT_ALV,
      IT_FIELDCAT1  TYPE SLIS_T_FIELDCAT_ALV.
*- For Events
DATA:IT_EVENTS TYPE SLIS_T_EVENT.

DATA:  X_FIELDCAT  TYPE SLIS_FIELDCAT_ALV,
       X_FIELDCAT1  TYPE SLIS_FIELDCAT_ALV,
       X_LAYOUT    TYPE SLIS_LAYOUT_ALV,
       X_EVENTS    TYPE SLIS_ALV_EVENT.

*---------------------------------------------------------------------
*                Selection screen
*---------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_VBELN FOR V_LIKP-VBELN,
                S_VSTEL FOR V_LIKP-VSTEL,
                S_WERKS FOR V_LIPS-WERKS,
                S_WADAT FOR V_VBEP-WADAT,
                S_TRSPG FOR V_LIKP-TRSPG OBLIGATORY,
                S_OCHRC FOR V_VEKP-ZZOCHOLDRC,
                S_USERID FOR V_VBAK-ZZREP_USERID1.
SELECTION-SCREEN END OF BLOCK B1.
*---------------------------------------------------------------------
*                START-OF_SELECTION
*---------------------------------------------------------------------
START-OF-SELECTION.
  SELECT VBELN
         VSTEL
         LFDAT
         KUNNR
         FROM LIKP
         INTO TABLE IT_LIKP
         WHERE VBELN IN S_VBELN
          AND  VSTEL IN S_VSTEL
          AND  WADAT IN S_WADAT
          AND  WADAT_IST = '00000000'
          AND TRSPG IN S_TRSPG.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE I002 WITH 'NO DATA FOR THE SELECTION'.
  ENDIF.
**Populating the Delivery Item Data
  PERFORM GET_DEL_ITEM_DATA.
**Getting the PGI DATE &amp;amp; USERID
  PERFORM GET_USERID.
**Getting the Promise DATE &amp;amp; OC HOLD RC
  PERFORM GET_VEKP_DATA.
**get the Reason codes
  PERFORM SELECT_OCHOLDRC.
** Populating the Final Internaltable
  PERFORM POPULATE_FINAL_TABLE.

*---------------------------------------------------------------------
*                START-OF_SELECTION
*---------------------------------------------------------------------
END-OF-SELECTION.
**Populating the fieldcatalog
  PERFORM POPULATE_FIELDCATALOG.
**-ALV list Display
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM       = SY-REPID
      I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET'
      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
      IS_LAYOUT                = X_LAYOUT
      IT_FIELDCAT              = IT_FIELDCAT
      IT_EVENTS                = IT_EVENTS
    TABLES
      T_OUTTAB                 = IT_FINAL
    EXCEPTIONS
      PROGRAM_ERROR            = 1
      OTHERS                   = 2.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_DEL_ITEM_DATA
*&amp;amp;---------------------------------------------------------------------*
*       Populating the Delivery Item Data
*----------------------------------------------------------------------*
FORM GET_DEL_ITEM_DATA .
  IF NOT IT_LIKP[] IS INITIAL.
**-Getting the name of Ship-to-party
    SELECT KUNNR
          NAME1
          INTO TABLE IT_KNA1
          FROM KNA1
          FOR ALL ENTRIES IN IT_LIKP[]
          WHERE KUNNR = IT_LIKP-KUNNR.
**-Getting Delivery Item Data
    SELECT VBELN
           POSNR
           MATNR
           WERKS
           LFIMG
           ARKTX
           VGBEL
           VGPOS
           ZZCONPATH
           INTO TABLE IT_LIPS
           FROM LIPS
           FOR ALL ENTRIES IN IT_LIKP[]
           WHERE VBELN = IT_LIKP-VBELN
               AND WERKS IN S_WERKS.
  ENDIF.
ENDFORM.                    " GET_DEL_ITEM_DATA
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_userid
*&amp;amp;---------------------------------------------------------------------*
*       Getting the  USERID
*----------------------------------------------------------------------*
FORM GET_USERID .
  IF NOT IT_LIPS[]  IS INITIAL.
**-Getting the USERID
    SELECT VBELN
           ZZREP_USERID1
           INTO TABLE IT_VBAK
           FROM VBAK
           FOR ALL ENTRIES IN IT_LIPS[]
           WHERE VBELN = IT_LIPS-VGBEL
              AND ZZREP_USERID1 IN S_USERID.
  ENDIF.
ENDFORM.                    " get_userid

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  populate_final_table
*&amp;amp;---------------------------------------------------------------------*
*       Populating the Final Internaltable
*----------------------------------------------------------------------*
FORM POPULATE_FINAL_TABLE .
  CLEAR IT_FINAL.
  REFRESH IT_FINAL.
  SORT IT_VEKP_TMP BY ZZPROMDT ZZSONUM ZZOCHOLDRC.
 DELETE ADJACENT DUPLICATES FROM IT_VEKP_TMP COMPARING ZZPROMDT ZZSONUM
ZZOCHOLDRC.
  LOOP AT IT_LIPS.
    MOVE-CORRESPONDING IT_LIPS TO IT_FINAL.
    READ TABLE IT_LIKP WITH KEY VBELN = IT_LIPS-VBELN.
    IF SY-SUBRC = 0.
      IT_FINAL-VSTEL = IT_LIKP-VSTEL.
      IT_FINAL-LFDAT = IT_LIKP-LFDAT.
    ENDIF.
    READ TABLE IT_KNA1 WITH KEY KUNNR = IT_LIKP-KUNNR.
    IF SY-SUBRC = 0.
      IT_FINAL-NAME1 = IT_KNA1-NAME1.
    ENDIF.
    READ TABLE IT_VBAK WITH KEY VBELN = IT_LIPS-VGBEL.
    IF SY-SUBRC = 0.
      IT_FINAL-ZZREP_USERID1 = IT_VBAK-ZZREP_USERID1.
    ENDIF.
    READ TABLE IT_SONUM WITH KEY VGBEL = IT_LIPS-VGBEL
                                 VGPOS = IT_LIPS-VGPOS.
    IF SY-SUBRC = 0.
      LOOP AT IT_VEKP_TMP WHERE ZZSONUM = IT_SONUM-ZZSONUM.
        IF NOT IT_VEKP_TMP-ZZPROMDT+0(4) = '0000'.
          WRITE IT_VEKP_TMP-ZZPROMDT TO IT_FINAL-ZZPROMDT .
        ELSE.
          IT_FINAL-ZZPROMDT = '00/00/0000'.
        ENDIF.
        IT_FINAL-ZZOCHOLDRC = IT_VEKP_TMP-ZZOCHOLDRC.
        APPEND IT_FINAL.
      ENDLOOP.
      IF SY-SUBRC &amp;lt;&amp;gt; 0.
        IT_FINAL-ZZPROMDT = '00/00/0000'.
        IT_FINAL-ZZOCHOLDRC = ' '.
        IT_FINAL-FLAG = 'X'.
        APPEND IT_FINAL.
        CLEAR IT_FINAL.
      ENDIF.
    ENDIF.
  ENDLOOP.
  IF NOT IT_ZSDOCHOLD[] IS INITIAL.
    LOOP AT IT_FINAL.
      READ TABLE IT_ZSDOCHOLD WITH KEY ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
      IF SY-SUBRC = 0.
        IT_FINAL-ZZRCDESC = IT_ZSDOCHOLD-ZZRCDESC.
        MODIFY IT_FINAL.
      ENDIF.
    ENDLOOP.
  ENDIF.
  IT_FINAL_TMP[] = IT_FINAL[].
  CLEAR IT_FINAL.
ENDFORM.                    " populate_final_table
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  populate_fieldcatalog
*&amp;amp;---------------------------------------------------------------------*
*       Populating the fieldcatalog
*----------------------------------------------------------------------*
FORM POPULATE_FIELDCATALOG .

  DATA:L_POS TYPE I VALUE 1.
  CLEAR: L_POS.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Shpt'.
  X_FIELDCAT-FIELDNAME = 'VSTEL'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '4'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Con Path'.
  X_FIELDCAT-FIELDNAME = 'ZZCONPATH'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '8'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Plant'.
  X_FIELDCAT-FIELDNAME = 'WERKS'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '5'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.
  X_FIELDCAT-SELTEXT_M = 'Del Date'.
  X_FIELDCAT-FIELDNAME = 'LFDAT'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '10'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Prom Date'.
  X_FIELDCAT-FIELDNAME = 'ZZPROMDT'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '10'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-INPUT = 'X'.
  X_FIELDCAT-HOTSPOT = 'X'.
  X_FIELDCAT-DATATYPE = 'CHAR'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR  X_FIELDCAT.

  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Ship-To-Name'.
  X_FIELDCAT-FIELDNAME = 'NAME1'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '40'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'SalesOrder#'.
  X_FIELDCAT-FIELDNAME = 'VGBEL'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '10'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = 'X'.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Item'.
  X_FIELDCAT-FIELDNAME = 'VGPOS'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-OUTPUTLEN = '5'.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Material'.
  X_FIELDCAT-FIELDNAME = 'MATNR'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '18'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Materal Desc'.
  X_FIELDCAT-FIELDNAME = 'ARKTX'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '40'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'D.O.Item Qty'.
  X_FIELDCAT-FIELDNAME = 'LFIMG'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '13'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'RC'.
  X_FIELDCAT-FIELDNAME = 'ZZOCHOLDRC'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-EMPHASIZE = 'C700'.
  X_FIELDCAT-OUTPUTLEN = '3'.
  X_FIELDCAT-INPUT = 'X'.
  X_FIELDCAT-HOTSPOT = 'X'.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.

  L_POS = L_POS + 1.
  X_FIELDCAT-SELTEXT_M = 'OC HOLD RC Desc'.
  X_FIELDCAT-FIELDNAME = 'ZZRCDESC'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-EMPHASIZE = 'C700'.
  X_FIELDCAT-OUTPUTLEN = '20'.
  X_FIELDCAT-INPUT = 'X'.
  X_FIELDCAT-HOTSPOT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Delivery'.
  X_FIELDCAT-FIELDNAME = 'VBELN'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '10'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = 'X'.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Item'.
  X_FIELDCAT-FIELDNAME = 'POSNR'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '5'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.
  L_POS = L_POS + 1.

  X_FIELDCAT-SELTEXT_M = 'Rep User Id'.
  X_FIELDCAT-FIELDNAME = 'ZZREP_USERID1'.
  X_FIELDCAT-TABNAME = 'IT_FINAL'.
  X_FIELDCAT-COL_POS    = L_POS.
  X_FIELDCAT-OUTPUTLEN = '11'.
  X_FIELDCAT-EMPHASIZE = ' '.
  X_FIELDCAT-HOTSPOT = ' '.
  X_FIELDCAT-INPUT = ' '.
  APPEND X_FIELDCAT TO IT_FIELDCAT.
  CLEAR X_FIELDCAT.

  X_LAYOUT-ZEBRA         = 'X'.
  REFRESH:IT_EVENTS.
  CLEAR:X_EVENTS,IT_EVENTS.

  X_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.
  X_EVENTS-FORM = 'TOP_OF_PAGE'.
  APPEND X_EVENTS TO IT_EVENTS.
  CLEAR X_EVENTS.
  X_EVENTS-NAME = SLIS_EV_END_OF_LIST.
  X_EVENTS-FORM = 'MODIFY_LIST'.
  APPEND X_EVENTS TO IT_EVENTS.
  CLEAR X_EVENTS.
ENDFORM.                    " populate_fieldcatalog
*---------------------------------------------------------------------
*                Top_of_page
*---------------------------------------------------------------------
FORM TOP_OF_PAGE.
* Call Steelcase Header
  FORMAT COLOR COL_HEADING INTENSIFIED ON.
  CALL FUNCTION 'Z_STEELCASE_HEADER'.
  FORMAT COLOR OFF.
ENDFORM.                    "top_of_page
*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  USER_COMMAND
*&amp;amp;--------------------------------------------------------------------*
*      For User Command
*---------------------------------------------------------------------*
FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
  DATA: L_ANS.
  DATA: L_SONUM LIKE VEKP-ZZSONUM.
  DATA: L_TABIX LIKE SY-TABIX.
  DATA : L_DATE1 LIKE VEKP-ZZPROMDT.
  CASE UCOMM.
**-When User Double Clicks
    WHEN '&amp;amp;IC1'.
      IF SELFIELD-TABINDEX &amp;lt;&amp;gt; 0.
**if user clicks on sales order
        IF SELFIELD-SEL_TAB_FIELD = 'IT_FINAL-VGBEL'.
          READ TABLE IT_FINAL INDEX SELFIELD-TABINDEX
                                          TRANSPORTING VGBEL.
          IF SY-SUBRC = 0.
            SET PARAMETER ID 'AUN' FIELD IT_FINAL-VGBEL.
          ENDIF.
          CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
        ENDIF.
**if user clicks on Delivery
        IF SELFIELD-SEL_TAB_FIELD = 'IT_FINAL-VBELN'.
          READ TABLE IT_FINAL INDEX SELFIELD-TABINDEX
                                          TRANSPORTING VBELN.
          IF SY-SUBRC = 0.
            SET PARAMETER ID 'VL' FIELD IT_FINAL-VBELN.
          ENDIF.
          CALL TRANSACTION 'VL02N' AND SKIP FIRST SCREEN.
        ENDIF.
**if user clicks on Order Control Hold Reason code
        IF SELFIELD-SEL_TAB_FIELD = 'IT_FINAL-ZZOCHOLDRC'
            OR SELFIELD-SEL_TAB_FIELD = 'IT_FINAL-ZZPROMDT'.
          READ TABLE IT_FINAL INDEX SELFIELD-TABINDEX
                                          TRANSPORTING
                                          VGBEL
                                          VGPOS
                                          ZZOCHOLDRC.
          IF SY-SUBRC = 0.
            PERFORM GET_HU_DATA.
            PERFORM POPULATE_FIELDCAT2.
            PERFORM LIST_DISPLAY.
          ENDIF.
        ENDIF.
      ENDIF.
**When User Press back Button
    WHEN 'BACK1'.
      CLEAR V_ERROR.
      LOOP AT IT_FINAL.
        READ TABLE IT_OCRC WITH KEY ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
        IF SY-SUBRC &amp;lt;&amp;gt; 0.
          IF NOT IT_FINAL-ZZOCHOLDRC IS INITIAL.
            V_ERROR = 'X'.
            EXIT.
          ENDIF.
        ENDIF.
      ENDLOOP.
**Checking for the Data Change
      IF IT_FINAL_TMP[] &amp;lt;&amp;gt; IT_FINAL[].
        PERFORM CONFIRM_BEFORE_LEAVE CHANGING L_ANS.
        IF L_ANS = '1' .
          IF V_ERROR IS INITIAL.
            LOOP AT IT_FINAL.
              L_TABIX = SY-TABIX.
              READ TABLE IT_FINAL_TMP INDEX L_TABIX.
              IF SY-SUBRC  = 0.
                IF IT_FINAL &amp;lt;&amp;gt; IT_FINAL_TMP.
*-Validate Date Field.
                  PERFORM VALIDATE_AND_CONVERT_DATE.
                 CONCATENATE IT_FINAL-VGBEL IT_FINAL-VGPOS INTO L_SONUM.
                  READ TABLE IT_VEKP WITH KEY
                                     ZZSONUM    = L_SONUM
                                   ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.
                  IF SY-SUBRC = 0.
                    CLEAR L_DATE1.
                    L_DATE1 = IT_FINAL-ZZPROMDT+6(4).
                CONCATENATE L_DATE1 IT_FINAL-ZZPROMDT+0(2) INTO L_DATE1.
                CONCATENATE L_DATE1 IT_FINAL-ZZPROMDT+3(2) INTO L_DATE1.
**Modifying the VEKP table based on changes
                    UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC
                                    ZZPROMDT =  L_DATE1
                                  WHERE       ZZSONUM = IT_VEKP-ZZSONUM
                               AND ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.
                    IF SY-SUBRC = 0.
                      COMMIT WORK.
                    ENDIF.
**Modifying the ZSD_OC_HOLD table based on changes
                    IF IT_FINAL-ZZRCDESC &amp;lt;&amp;gt; IT_FINAL_TMP-ZZRCDESC.
                    UPDATE ZSD_OC_HOLD SET ZZRCDESC = IT_FINAL-ZZRCDESC
                                 WHERE ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
                      IF SY-SUBRC = 0.
                        COMMIT WORK.
                      ENDIF.
                    ENDIF.
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDLOOP.
            LEAVE TO SCREEN 0.
          ELSE.
            PERFORM VALIDATE_REASON_CODE.
            MESSAGE I002 WITH 'Please enter valid Reason Codes'.
          ENDIF.
        ELSEIF L_ANS = '2'.
          LEAVE TO SCREEN 0.
        ENDIF.
      ELSE.
        LEAVE TO SCREEN 0.
      ENDIF.
    WHEN 'SAVE'.
      PERFORM VALIDATE_REASON_CODE.
**CHECKING FOR THE DATA CHANGE
      IF IT_FINAL_TMP[] &amp;lt;&amp;gt; IT_FINAL[].
        IF V_ERROR IS INITIAL.
          LOOP AT IT_FINAL.
            L_TABIX = SY-TABIX.
            READ TABLE IT_FINAL_TMP INDEX L_TABIX.
            IF SY-SUBRC  = 0.
              IF IT_FINAL &amp;lt;&amp;gt; IT_FINAL_TMP.
*-Validate Date Field.
                PERFORM VALIDATE_AND_CONVERT_DATE.
                CONCATENATE IT_FINAL-VGBEL IT_FINAL-VGPOS INTO L_SONUM.
                READ TABLE IT_VEKP WITH KEY
                                   ZZSONUM    = L_SONUM
                                   ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.
                IF SY-SUBRC = 0.
                  CLEAR L_DATE1.
                  L_DATE1 = IT_FINAL-ZZPROMDT+6(4).
                CONCATENATE L_DATE1 IT_FINAL-ZZPROMDT+0(2) INTO L_DATE1.
                CONCATENATE L_DATE1 IT_FINAL-ZZPROMDT+3(2) INTO L_DATE1.
**Modifying the VEKP table based on changes
                  UPDATE VEKP SET ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC
                                  ZZPROMDT =  L_DATE1
                                  WHERE       ZZSONUM = IT_VEKP-ZZSONUM
                               AND ZZOCHOLDRC = IT_FINAL_TMP-ZZOCHOLDRC.
                  IF SY-SUBRC = 0.
                    COMMIT WORK.
                  ENDIF.
**Modifying the ZSD_OC_HOLD table based on changes
                  IF IT_FINAL-ZZRCDESC &amp;lt;&amp;gt; IT_FINAL_TMP-ZZRCDESC.
                    UPDATE ZSD_OC_HOLD SET ZZRCDESC = IT_FINAL-ZZRCDESC
                                 WHERE ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
                    IF SY-SUBRC = 0.
                      COMMIT WORK.
                    ENDIF.
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDLOOP.
          PERFORM GET_VEKP_DATA .
          PERFORM POPULATE_FINAL_TABLE.
          MESSAGE S002 WITH 'Data Saved'.
        ELSE.
          MESSAGE I002 WITH 'Please enter valid Reason Codes'.
        ENDIF.
      ENDIF.
    WHEN 'ENTER'.
      DATA: L_TABIX1 TYPE SY-TABIX.
      PERFORM VALIDATE_REASON_CODE .
      IF V_ERROR IS INITIAL.
        CLEAR L_TABIX1.
        LOOP AT IT_FINAL.
          L_TABIX1 = SY-TABIX.
          READ TABLE IT_OCRC WITH KEY ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
          IF SY-SUBRC = 0.
            IT_FINAL-ZZRCDESC = IT_OCRC-ZZRCDESC.
            MODIFY IT_FINAL INDEX L_TABIX1 TRANSPORTING ZZRCDESC.
          ENDIF.
        ENDLOOP.
      ENDIF.
  ENDCASE.
  SELFIELD-REFRESH = 'X'.
ENDFORM.                    "USER_COMMAND
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_vekp_data
*&amp;amp;---------------------------------------------------------------------*
*       Populating Promise Date and Order Control Hold Reason Code
*----------------------------------------------------------------------*
FORM GET_VEKP_DATA .
  CLEAR: IT_SONUM,IT_VEKP,IT_VEKP_TMP.
  REFRESH: IT_SONUM,IT_VEKP,IT_VEKP_TMP.
  LOOP AT IT_LIPS.
    MOVE-CORRESPONDING IT_LIPS TO IT_SONUM.
    CONCATENATE IT_LIPS-VGBEL IT_LIPS-VGPOS INTO IT_SONUM-ZZSONUM.
    APPEND IT_SONUM.
    CLEAR IT_SONUM.
  ENDLOOP.
  IF NOT IT_SONUM[] IS INITIAL.
    SELECT EXIDV
           ZZSONUM
           ZZPROMDT
           ZZOCHOLDRC
          INTO TABLE IT_VEKP
          FROM VEKP
          FOR ALL ENTRIES IN IT_SONUM[]
          WHERE ZZSONUM = IT_SONUM-ZZSONUM
             AND ZZOCHOLDRC IN S_OCHRC.
    IF SY-SUBRC = 0.
      IT_VEKP_TMP[] = IT_VEKP[].
      SELECT ZZOCHOLDRC
             ZZRCDESC
             INTO TABLE IT_ZSDOCHOLD
             FROM ZSD_OC_HOLD
             FOR ALL ENTRIES IN IT_VEKP[]
             WHERE ZZOCHOLDRC = IT_VEKP-ZZOCHOLDRC.
    ENDIF.
  ENDIF.
ENDFORM.                    " get_vekp_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  populate_fieldcat2
*&amp;amp;---------------------------------------------------------------------*
*      Populating the Fieldcatalog
*----------------------------------------------------------------------*
FORM POPULATE_FIELDCAT2 .
  CLEAR: IT_FIELDCAT1,X_FIELDCAT1.
  REFRESH IT_FIELDCAT1.
  DATA:L_POS TYPE I VALUE 1.
  CLEAR: L_POS.
  L_POS = L_POS + 1.

  X_FIELDCAT1-SELTEXT_L = 'External Handling Unit Identification'.
  X_FIELDCAT1-FIELDNAME = 'EXIDV'.
  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.
  X_FIELDCAT1-COL_POS    = L_POS.
  X_FIELDCAT1-INPUT = ' '.
  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT1.
  L_POS = L_POS + 1.

  X_FIELDCAT1-SELTEXT_L = 'Promise Date'.
  X_FIELDCAT1-FIELDNAME = 'ZZPROMDT'.
  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.
  X_FIELDCAT1-COL_POS    = L_POS.
  X_FIELDCAT1-INPUT = 'X'.
  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT1.
  L_POS = L_POS + 1.

  X_FIELDCAT1-SELTEXT_L = 'Order Control Hold Reason Code'.
  X_FIELDCAT1-FIELDNAME = 'ZZOCHOLDRC'.
  X_FIELDCAT1-TABNAME = 'IT_VEKP1'.
  X_FIELDCAT1-COL_POS    = L_POS.
  X_FIELDCAT1-INPUT = 'X'.
  APPEND X_FIELDCAT1 TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT1.
ENDFORM.                    " populate_fieldcat2
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  list_display
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM LIST_DISPLAY .
**-ALV list Display
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM       = SY-REPID
      I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET1'
      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND1'
      IS_LAYOUT                = X_LAYOUT
      IT_FIELDCAT              = IT_FIELDCAT1
      IT_EVENTS                = IT_EVENTS
    TABLES
      T_OUTTAB                 = IT_VEKP1
    EXCEPTIONS
      PROGRAM_ERROR            = 1
      OTHERS                   = 2.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " list_display
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_HU_DATA
*&amp;amp;---------------------------------------------------------------------*
*      Get Handling Units Data
*----------------------------------------------------------------------*
FORM GET_HU_DATA .
  CLEAR IT_VEKP1.
  REFRESH IT_VEKP1.
  READ TABLE IT_SONUM WITH KEY VGBEL = IT_FINAL-VGBEL
                               VGPOS = IT_FINAL-VGPOS.
  IF SY-SUBRC = 0.
    LOOP AT IT_VEKP WHERE ZZSONUM = IT_SONUM-ZZSONUM
                     AND  ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
      IT_VEKP1-EXIDV  = IT_VEKP-EXIDV.
      IT_VEKP1-ZZSONUM = IT_VEKP-ZZSONUM.
      IF NOT IT_VEKP-ZZPROMDT+0(4) = '0000'.
        WRITE IT_VEKP-ZZPROMDT TO IT_VEKP1-ZZPROMDT .
      ELSE.
        IT_VEKP1-ZZPROMDT = '00/00/0000'.
      ENDIF.
      IT_VEKP1-ZZOCHOLDRC = IT_VEKP-ZZOCHOLDRC.
      APPEND IT_VEKP1.
    ENDLOOP.
  ENDIF.
  IT_VEKP1_TMP[] = IT_VEKP1[].
ENDFORM.                    " GET_HU_DATA
*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  USER_COMMAND1
*&amp;amp;--------------------------------------------------------------------*
*      For User Command1
*---------------------------------------------------------------------*
FORM USER_COMMAND1 USING UCOMM LIKE SY-UCOMM SELFIELD TYPE
                                                         SLIS_SELFIELD.
  DATA: L_ANS,
        L_DATE LIKE VEKP-ZZPROMDT.
  CASE UCOMM.
**When User Press Back
    WHEN 'BACK1'.
      CLEAR V_ERROR.
      LOOP AT IT_VEKP1.
        READ TABLE IT_OCRC WITH KEY ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC.
        IF SY-SUBRC &amp;lt;&amp;gt; 0.
          IF NOT IT_VEKP1-ZZOCHOLDRC IS INITIAL.
            V_ERROR = 'X'.
            EXIT.
          ENDIF.
        ENDIF.
      ENDLOOP.
**Checking for the Change in the data
      IF IT_VEKP1_TMP[] &amp;lt;&amp;gt; IT_VEKP1[].
        PERFORM CONFIRM_BEFORE_LEAVE CHANGING L_ANS.
        IF L_ANS = '1'.
          IF V_ERROR IS INITIAL.
            LOOP AT IT_VEKP1.
              READ TABLE IT_VEKP1_TMP WITH KEY EXIDV = IT_VEKP1-EXIDV.
              IF SY-SUBRC = 0.
                IF IT_VEKP1_TMP &amp;lt;&amp;gt; IT_VEKP1.
                  CLEAR L_DATE.
                  L_DATE = IT_VEKP1-ZZPROMDT+6(4).
                  CONCATENATE L_DATE IT_VEKP1-ZZPROMDT+0(2) INTO L_DATE.
                  CONCATENATE L_DATE IT_VEKP1-ZZPROMDT+3(2) INTO L_DATE.
                  UPDATE VEKP SET ZZPROMDT = L_DATE
                                  ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC
                                WHERE EXIDV = IT_VEKP1-EXIDV.
                  IF SY-SUBRC = 0.
                    COMMIT WORK.
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDLOOP.
            PERFORM GET_VEKP_DATA .
            PERFORM POPULATE_FINAL_TABLE.
            SELFIELD-REFRESH = 'X'.
            LEAVE TO SCREEN 0.
          ELSE.
            PERFORM VALIDATE_REASON_CODE1.
            MESSAGE I002 WITH 'Please enter valid Reason Codes'.
          ENDIF.
        ELSEIF L_ANS = '2'.
          LEAVE TO SCREEN 0.
        ENDIF.
      ELSE.
        LEAVE TO SCREEN 0.
      ENDIF.
    WHEN 'SAVE'.
      PERFORM VALIDATE_REASON_CODE1.
**Checking for the Change in the data
      IF IT_VEKP1_TMP[] &amp;lt;&amp;gt; IT_VEKP1[].
        IF V_ERROR IS INITIAL.
          LOOP AT IT_VEKP1.
            READ TABLE IT_VEKP1_TMP WITH KEY EXIDV = IT_VEKP1-EXIDV.
            IF SY-SUBRC = 0.
              IF IT_VEKP1_TMP &amp;lt;&amp;gt; IT_VEKP1.
                CLEAR L_DATE.
                L_DATE = IT_VEKP1-ZZPROMDT+6(4).
                CONCATENATE L_DATE IT_VEKP1-ZZPROMDT+0(2) INTO L_DATE.
                CONCATENATE L_DATE IT_VEKP1-ZZPROMDT+3(2) INTO L_DATE.
                UPDATE VEKP SET ZZPROMDT = L_DATE
                                ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC
                              WHERE EXIDV = IT_VEKP1-EXIDV.
                IF SY-SUBRC = 0.
                  COMMIT WORK.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDLOOP.
          PERFORM GET_VEKP_DATA .
          CLEAR IT_VEKP1_TMP.
          REFRESH IT_VEKP1_TMP.
          IT_VEKP1_TMP[] = IT_VEKP1[].
          PERFORM POPULATE_FINAL_TABLE.
          SELFIELD-REFRESH = 'X'.
          MESSAGE S002 WITH 'Data Saved'.
        ELSE.
          MESSAGE I002 WITH 'Please enter valid Reason Codes'.
        ENDIF.
      ENDIF.
    WHEN 'ENTER'.
      PERFORM VALIDATE_REASON_CODE1.
  ENDCASE.
ENDFORM.                    "USER_COMMAND1
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PF_STATUS_SET
*&amp;amp;---------------------------------------------------------------------*
*       PF Satatus for first List
*----------------------------------------------------------------------*
FORM PF_STATUS_SET USING    P_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STANDARD' EXCLUDING P_EXTAB.
ENDFORM.                    "PF_STATUS_SET
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PF_STATUS_SET1
*&amp;amp;---------------------------------------------------------------------*
*       PF Satatus for Second list
*----------------------------------------------------------------------*
FORM PF_STATUS_SET1 USING    P_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STANDARD' EXCLUDING P_EXTAB.
ENDFORM.                    "PF_STATUS_SET
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  CONFIRM_BEFORE_LEAVE
*&amp;amp;---------------------------------------------------------------------*
*       Popup for Confirm
*----------------------------------------------------------------------*
FORM CONFIRM_BEFORE_LEAVE  CHANGING P_ANS.
  CALL FUNCTION 'POPUP_TO_CONFIRM'
         EXPORTING
             TITLEBAR              = 'Confirm'
         TEXT_QUESTION         = 'Do you wish to save your data first?'
             TEXT_BUTTON_1         = 'Yes'
             ICON_BUTTON_1         = 'ICON_OKAY'
             TEXT_BUTTON_2         = 'No'
             ICON_BUTTON_2         = 'ICON_CANCEL'
             DEFAULT_BUTTON        = '1'
             DISPLAY_CANCEL_BUTTON = 'X'
             START_COLUMN          = 25
             START_ROW             = 6
        IMPORTING
             ANSWER                = P_ANS
        EXCEPTIONS
             TEXT_NOT_FOUND        = 1
             OTHERS                = 2.
ENDFORM.                    " CONFIRM_BEFORE_LEAVE
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  VALIDATE_AND_CONVERT_DATE
*&amp;amp;---------------------------------------------------------------------*
*       Validating and Converting the date
*----------------------------------------------------------------------*
FORM VALIDATE_AND_CONVERT_DATE .
  DATA : L_DATE LIKE SY-DATUM.
  CALL FUNCTION 'CONVERT_DATE_INPUT'
    EXPORTING
      INPUT                     = IT_FINAL-ZZPROMDT
    IMPORTING
      OUTPUT                    = L_DATE
    EXCEPTIONS
      PLAUSIBILITY_CHECK_FAILED = 1
      WRONG_FORMAT_IN_INPUT     = 2
      OTHERS                    = 3.
  IF SY-SUBRC = 0.
    WRITE L_DATE TO IT_FINAL-ZZPROMDT.
    MODIFY IT_FINAL.
  ENDIF.
ENDFORM.                    " VALIDATE_AND_CONVERT_DATE

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  MODIFY_LIST
*&amp;amp;---------------------------------------------------------------------*
*      Modify the Report
*----------------------------------------------------------------------*
FORM MODIFY_LIST.
  DATA: L_LINES TYPE I,
        L_FLAG.
  CLEAR IT_NODATA. REFRESH IT_NODATA.
  LOOP AT IT_FINAL WHERE FLAG = 'X'.
    IT_NODATA-IND = SY-TABIX + 6.
    APPEND IT_NODATA.
    CLEAR IT_NODATA.
  ENDLOOP.
  DESCRIBE TABLE IT_FINAL LINES L_LINES.
  L_LINES  = L_LINES + 6.
  DO L_LINES TIMES.
    READ TABLE IT_NODATA WITH KEY IND = SY-INDEX.
    IF SY-SUBRC = 0.
      READ LINE SY-INDEX INDEX SY-LSIND.
      IF SY-SUBRC = 0.
        MODIFY LINE SY-INDEX INDEX SY-LSIND
                   FIELD FORMAT  IT_FINAL-ZZPROMDT  INPUT OFF COLOR 6
                                 IT_FINAL-ZZOCHOLDRC  INPUT OFF COLOR 6
                                 IT_FINAL-ZZRCDESC  INPUT OFF COLOR 6.
      ENDIF.
    ENDIF.
  ENDDO.
ENDFORM.                    "MODIFY_LIST
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  select_OCHOLDRC
*&amp;amp;---------------------------------------------------------------------*
*       Get ALL OC HOLD RC
*----------------------------------------------------------------------*
FORM SELECT_OCHOLDRC .
  SELECT *
         FROM ZSD_OC_HOLD
         INTO TABLE IT_OCRC.
ENDFORM.                    " select_OCHOLDRC
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  validate_reason_code
*&amp;amp;---------------------------------------------------------------------*
*       validation of Reason Code
*----------------------------------------------------------------------*
FORM VALIDATE_REASON_CODE.
  CLEAR V_ERROR.
  LOOP AT IT_FINAL.
    READ TABLE IT_OCRC WITH KEY ZZOCHOLDRC = IT_FINAL-ZZOCHOLDRC.
    IF SY-SUBRC = 0.

    ELSE.
      IF NOT IT_FINAL-ZZOCHOLDRC IS INITIAL.
        V_ERROR = 'X'.
       MESSAGE I002 WITH 'Reason code' IT_FINAL-ZZOCHOLDRC 'is invalid'.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " validate_reason_code
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  validate_reason_code1
*&amp;amp;---------------------------------------------------------------------*
*       validation of Reason Code1
*----------------------------------------------------------------------*
FORM VALIDATE_REASON_CODE1.
  CLEAR V_ERROR.
  LOOP AT IT_VEKP1.
    READ TABLE IT_OCRC WITH KEY ZZOCHOLDRC = IT_VEKP1-ZZOCHOLDRC.
    IF SY-SUBRC = 0.

    ELSE.
      IF NOT IT_VEKP1-ZZOCHOLDRC IS INITIAL.
        V_ERROR = 'X'.
       MESSAGE I002 WITH 'Reason code' IT_VEKP1-ZZOCHOLDRC 'is invalid'.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " validate_reason_code1&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Vijay Babu Dudla&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jan 2006 13:37:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-edit-list/m-p/1128114#M110944</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-06T13:37:07Z</dc:date>
    </item>
  </channel>
</rss>

