ALV Report-3
Example ALV Report 3
*&---------------------------------------------------------------------*
*& Report ZALV3 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZALV3.
DATA: BEGIN OF ITAB OCCURS 1,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MATKL LIKE MARA-MATKL,
MAKTX LIKE MAKT-MAKTX,
WERKS LIKE MARD-WERKS,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
END OF ITAB.
TYPE-POOLS: SLIS.
*--for field catalog
DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FLDCAT LIKE LINE OF IT_FLDCAT.
*--for layout
DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
SELECT-OPTIONS: S_MATNR FOR ITAB-MATNR.
PARAMETERS: P_AUTO RADIOBUTTON GROUP G1,
P_MANU RADIOBUTTON GROUP G1.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM BUILD_FLDCAT.
PERFORM BUILD_LAYOUT.
END-OF-SELECTION.
PERFORM SHOW-GRID.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT A~MATNR
MTART
MATKL
MAKTX
WERKS
LGORT
LABST
INTO TABLE ITAB
FROM MARA AS A
JOIN MAKT AS B
ON B~MATNR = A~MATNR
JOIN MARD AS C
ON C~MATNR = A~MATNR
WHERE A~MATNR IN S_MATNR
AND SPRAS = SY-LANGU.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form SHOW-GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SHOW-GRID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE = 'Material Information'
* I_GRID_SETTINGS =
* IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FLDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
TABLES
T_OUTTAB = ITAB
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " SHOW-GRID
*&---------------------------------------------------------------------*
*& Form BUILD_FLDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_FLDCAT .
IF P_MANU = 'X'.
WA_FLDCAT-COL_POS = 1.
WA_FLDCAT-FIELDNAME = 'MATNR'.
WA_FLDCAT-OUTPUTLEN = 18.
WA_FLDCAT-KEY = 'X'.
WA_FLDCAT-SELTEXT_M = 'Material No'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 2.
WA_FLDCAT-FIELDNAME = 'MTART'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Mat Type'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 3.
WA_FLDCAT-FIELDNAME = 'MATKL'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Mat Grp'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 4.
WA_FLDCAT-FIELDNAME = 'MAKTX'.
WA_FLDCAT-OUTPUTLEN = 40.
WA_FLDCAT-SELTEXT_M = 'Material Desc'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 5.
WA_FLDCAT-FIELDNAME = 'WERKS'.
WA_FLDCAT-OUTPUTLEN = 7.
WA_FLDCAT-SELTEXT_M = 'Plant'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 6.
WA_FLDCAT-FIELDNAME = 'LGORT'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Str.Loc'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 7.
WA_FLDCAT-FIELDNAME = 'LABST'.
WA_FLDCAT-OUTPUTLEN = 20.
WA_FLDCAT-SELTEXT_M = 'Qty'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
ELSE.
*--Auto generation of field catalog
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = 'ZALV3'
I_INTERNAL_TABNAME = 'ITAB'
* I_STRUCTURE_NAME = 'ZDT2'
I_INCLNAME = 'ZALV3'
CHANGING
CT_FIELDCAT = IT_FLDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
LOOP AT IT_FLDCAT INTO WA_FLDCAT.
CASE WA_FLDCAT-FIELDNAME.
WHEN 'MATNR'.
WA_FLDCAT-KEY = 'X'.
WA_FLDCAT-REF_TABNAME = SPACE.
* WA_FLDCAT-HOTSPOT = 'X'.
WHEN 'MATKL' OR 'WERKS'.
WA_FLDCAT-KEY = SPACE.
WA_FLDCAT-REF_TABNAME = SPACE.
WHEN 'LGORT'.
WA_FLDCAT-KEY = SPACE.
ENDCASE.
MODIFY IT_FLDCAT FROM WA_FLDCAT INDEX SY-TABIX.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. " BUILD_FLDCAT
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT .
*WA_LAYOUT-colwidth_optimize = 'X'.
WA_LAYOUT-zebra = 'X'.
*WA_LAYOUT-no_colhead = 'X'.
*WA_LAYOUT-no_vline = 'X'.
*WA_LAYOUT-no_Hline = 'X'.
*WA_LAYOUT-edit = 'X'.
ENDFORM. " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Report ZALV3 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZALV3.
DATA: BEGIN OF ITAB OCCURS 1,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MATKL LIKE MARA-MATKL,
MAKTX LIKE MAKT-MAKTX,
WERKS LIKE MARD-WERKS,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
END OF ITAB.
TYPE-POOLS: SLIS.
*--for field catalog
DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FLDCAT LIKE LINE OF IT_FLDCAT.
*--for layout
DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
SELECT-OPTIONS: S_MATNR FOR ITAB-MATNR.
PARAMETERS: P_AUTO RADIOBUTTON GROUP G1,
P_MANU RADIOBUTTON GROUP G1.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM BUILD_FLDCAT.
PERFORM BUILD_LAYOUT.
END-OF-SELECTION.
PERFORM SHOW-GRID.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT A~MATNR
MTART
MATKL
MAKTX
WERKS
LGORT
LABST
INTO TABLE ITAB
FROM MARA AS A
JOIN MAKT AS B
ON B~MATNR = A~MATNR
JOIN MARD AS C
ON C~MATNR = A~MATNR
WHERE A~MATNR IN S_MATNR
AND SPRAS = SY-LANGU.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form SHOW-GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SHOW-GRID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE = 'Material Information'
* I_GRID_SETTINGS =
* IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FLDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
TABLES
T_OUTTAB = ITAB
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " SHOW-GRID
*&---------------------------------------------------------------------*
*& Form BUILD_FLDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_FLDCAT .
IF P_MANU = 'X'.
WA_FLDCAT-COL_POS = 1.
WA_FLDCAT-FIELDNAME = 'MATNR'.
WA_FLDCAT-OUTPUTLEN = 18.
WA_FLDCAT-KEY = 'X'.
WA_FLDCAT-SELTEXT_M = 'Material No'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 2.
WA_FLDCAT-FIELDNAME = 'MTART'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Mat Type'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 3.
WA_FLDCAT-FIELDNAME = 'MATKL'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Mat Grp'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 4.
WA_FLDCAT-FIELDNAME = 'MAKTX'.
WA_FLDCAT-OUTPUTLEN = 40.
WA_FLDCAT-SELTEXT_M = 'Material Desc'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 5.
WA_FLDCAT-FIELDNAME = 'WERKS'.
WA_FLDCAT-OUTPUTLEN = 7.
WA_FLDCAT-SELTEXT_M = 'Plant'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 6.
WA_FLDCAT-FIELDNAME = 'LGORT'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Str.Loc'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 7.
WA_FLDCAT-FIELDNAME = 'LABST'.
WA_FLDCAT-OUTPUTLEN = 20.
WA_FLDCAT-SELTEXT_M = 'Qty'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
ELSE.
*--Auto generation of field catalog
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = 'ZALV3'
I_INTERNAL_TABNAME = 'ITAB'
* I_STRUCTURE_NAME = 'ZDT2'
I_INCLNAME = 'ZALV3'
CHANGING
CT_FIELDCAT = IT_FLDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
LOOP AT IT_FLDCAT INTO WA_FLDCAT.
CASE WA_FLDCAT-FIELDNAME.
WHEN 'MATNR'.
WA_FLDCAT-KEY = 'X'.
WA_FLDCAT-REF_TABNAME = SPACE.
* WA_FLDCAT-HOTSPOT = 'X'.
WHEN 'MATKL' OR 'WERKS'.
WA_FLDCAT-KEY = SPACE.
WA_FLDCAT-REF_TABNAME = SPACE.
WHEN 'LGORT'.
WA_FLDCAT-KEY = SPACE.
ENDCASE.
MODIFY IT_FLDCAT FROM WA_FLDCAT INDEX SY-TABIX.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. " BUILD_FLDCAT
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT .
*WA_LAYOUT-colwidth_optimize = 'X'.
WA_LAYOUT-zebra = 'X'.
*WA_LAYOUT-no_colhead = 'X'.
*WA_LAYOUT-no_vline = 'X'.
*WA_LAYOUT-no_Hline = 'X'.
*WA_LAYOUT-edit = 'X'.
ENDFORM. " BUILD_LAYOUT