ALV popup with checkbox code example

Example: ALV popup with checkbox

REPORT ZSAPN_ALV_POPUP_HELP.
TYPE-POOLS: SLIS.
TABLES: T134.
TYPES: BEGIN OF TY_T134,
       CHECK TYPE CHAR1,
       MTART TYPE T134-MTART,
       END OF TY_T134.
DATA : IT_T134 TYPE TABLE OF TY_T134,
       WA_T134 TYPE TY_T134.
DATA: IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
      WA_FCAT LIKE LINE OF IT_FCAT.

DATA: IT_MARA TYPE TABLE OF MARA,
      WA_MARA TYPE MARA.

SELECT-OPTIONS: S_MTART FOR T134-MTART NO INTERVALS.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_MTART-LOW.
  WA_FCAT-COL_POS = 1.
  WA_FCAT-FIELDNAME = 'CHECK'.
  WA_FCAT-SELTEXT_M = 'Select'.
  WA_FCAT-TABNAME = 'IT_T134'.
  APPEND WA_FCAT TO IT_FCAT.
  CLEAR WA_FCAT.
  WA_FCAT-COL_POS = 2.
  WA_FCAT-FIELDNAME = 'MTART'.
  WA_FCAT-SELTEXT_M = 'Material Type'.
  WA_FCAT-TABNAME = 'IT_T134'.
  APPEND WA_FCAT TO IT_FCAT.
  CLEAR WA_FCAT.
  SELECT MTART  FROM T134 INTO CORRESPONDING FIELDS OF TABLE IT_T134.
  CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
    EXPORTING
      I_TITLE              = 'Select Material Type'
      I_CHECKBOX_FIELDNAME = 'CHECK'
      I_TABNAME            = 'IT_T134'
      IT_FIELDCAT          = IT_FCAT
      I_CALLBACK_PROGRAM   = SY-REPID
    TABLES
      T_OUTTAB             = IT_T134
*   EXCEPTIONS
*     PROGRAM_ERROR        = 1
*     OTHERS               = 2
    .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.
  LOOP AT IT_T134 INTO WA_T134 WHERE CHECK = 'X'.
    S_MTART-LOW = WA_T134-MTART.
    S_MTART-OPTION = 'EQ'.
    S_MTART-SIGN = 'I'.
    APPEND S_MTART.
  ENDLOOP.

START-OF-SELECTION.
  SELECT * FROM MARA INTO TABLE IT_MARA UP TO 50 ROWS
     WHERE MTART IN S_MTART .


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = SY-REPID
      I_STRUCTURE_NAME   = 'MARA'
    TABLES
      T_OUTTAB           = IT_MARA
*     EXCEPTIONS
*     PROGRAM_ERROR      = 1
*     OTHERS             = 2
    .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

Tags:

Misc Example