Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV EDIT?

Former Member
0 Likes
420

how to edit an alv list & alv grid output ?

hi Prakash,

<b>chk this for Grid</b>

/people/community.user/blog/2007/01/10/displaychange-mode-of-editable-fields-in-alv-using-function-modules-but-not-custom-containers

<b>chk this for list</b>

REPORT ABC.
TYPE-POOLS : SLIS.


*-------------- Data

DATA : BEGIN OF ITAB OCCURS 0.
        INCLUDE STRUCTURE T001.
DATA : FLAG TYPE C,
END OF ITAB.
DATA : ALVFC TYPE SLIS_T_FIELDCAT_ALV.
DATA : ALVLY TYPE SLIS_LAYOUT_ALV.

*--------- Select Data

SELECT * FROM T001 INTO TABLE ITAB.

LOOP AT ITAB.
  IF SY-TABIX = 1.
    ITAB-FLAG = '1'.
    MODIFY ITAB.
  ENDIF.
  IF SY-TABIX = 2.
    ITAB-FLAG = 'X'.
    MODIFY ITAB.
  ENDIF.

  IF SY-TABIX = 3.
    ITAB-FLAG = '0'.
    MODIFY ITAB.

  ENDIF.


ENDLOOP.

*------- Field Catalogue
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
     EXPORTING
          I_PROGRAM_NAME         = SY-CPROG
          I_INTERNAL_TABNAME     = 'ITAB'
          I_INCLNAME             = SY-CPROG
     CHANGING
          CT_FIELDCAT            = ALVFC
     EXCEPTIONS
          INCONSISTENT_INTERFACE = 1
          PROGRAM_ERROR          = 2
          OTHERS                 = 3.


*---------------Display
ALVLY-BOX_FIELDNAME = 'FLAG'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
     EXPORTING
          IT_FIELDCAT             = ALVFC
          I_CALLBACK_PROGRAM      = SY-CPROG  "<-------Important
          I_CALLBACK_USER_COMMAND =
             'ITAB_USER_COMMAND'       "<------ Important
          IS_LAYOUT               = ALVLY
     TABLES
          T_OUTTAB                = ITAB
     EXCEPTIONS
          PROGRAM_ERROR           = 1
          OTHERS                  = 2.



*-------------------------------------------------
* CALL BACK FORM
*-------------------------------------------------

FORM ITAB_USER_COMMAND USING WHATCOMM TYPE SY-UCOMM WHATROW TYPE
SLIS_SELFIELD.

  DATA : MSG(100) TYPE C.

  LOOP AT ITAB.
    IF ITAB-FLAG = 'X'.
      MSG = SY-TABIX.
      CONDENSE MSG.
      CONCATENATE 'Row Number ' MSG ' ' INTO MSG
      SEPARATED BY SPACE.
*message msg type 'I'.
    ENDIF.

  ENDLOOP.



ENDFORM.                               "ITAB_user_command

2 REPLIES 2
Read only

Former Member
0 Likes
397

hi Prakash,

<b>chk this for Grid</b>

/people/community.user/blog/2007/01/10/displaychange-mode-of-editable-fields-in-alv-using-function-modules-but-not-custom-containers

<b>chk this for list</b>

REPORT ABC.
TYPE-POOLS : SLIS.


*-------------- Data

DATA : BEGIN OF ITAB OCCURS 0.
        INCLUDE STRUCTURE T001.
DATA : FLAG TYPE C,
END OF ITAB.
DATA : ALVFC TYPE SLIS_T_FIELDCAT_ALV.
DATA : ALVLY TYPE SLIS_LAYOUT_ALV.

*--------- Select Data

SELECT * FROM T001 INTO TABLE ITAB.

LOOP AT ITAB.
  IF SY-TABIX = 1.
    ITAB-FLAG = '1'.
    MODIFY ITAB.
  ENDIF.
  IF SY-TABIX = 2.
    ITAB-FLAG = 'X'.
    MODIFY ITAB.
  ENDIF.

  IF SY-TABIX = 3.
    ITAB-FLAG = '0'.
    MODIFY ITAB.

  ENDIF.


ENDLOOP.

*------- Field Catalogue
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
     EXPORTING
          I_PROGRAM_NAME         = SY-CPROG
          I_INTERNAL_TABNAME     = 'ITAB'
          I_INCLNAME             = SY-CPROG
     CHANGING
          CT_FIELDCAT            = ALVFC
     EXCEPTIONS
          INCONSISTENT_INTERFACE = 1
          PROGRAM_ERROR          = 2
          OTHERS                 = 3.


*---------------Display
ALVLY-BOX_FIELDNAME = 'FLAG'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
     EXPORTING
          IT_FIELDCAT             = ALVFC
          I_CALLBACK_PROGRAM      = SY-CPROG  "<-------Important
          I_CALLBACK_USER_COMMAND =
             'ITAB_USER_COMMAND'       "<------ Important
          IS_LAYOUT               = ALVLY
     TABLES
          T_OUTTAB                = ITAB
     EXCEPTIONS
          PROGRAM_ERROR           = 1
          OTHERS                  = 2.



*-------------------------------------------------
* CALL BACK FORM
*-------------------------------------------------

FORM ITAB_USER_COMMAND USING WHATCOMM TYPE SY-UCOMM WHATROW TYPE
SLIS_SELFIELD.

  DATA : MSG(100) TYPE C.

  LOOP AT ITAB.
    IF ITAB-FLAG = 'X'.
      MSG = SY-TABIX.
      CONDENSE MSG.
      CONCATENATE 'Row Number ' MSG ' ' INTO MSG
      SEPARATED BY SPACE.
*message msg type 'I'.
    ENDIF.

  ENDLOOP.



ENDFORM.                               "ITAB_user_command