ALV Report with field catalog and layout in SAP ABAP
Example ALV report for using field catalog and layput in SAP ABAP
REPORT ZALV_2 . DATA: BEGIN OF ITAB OCCURS 1, MATNR LIKE MARA-MATNR, MAKTX LIKE MAKT-MAKTX, WERKS LIKE MARD-WERKS, LGORT LIKE MARD-LGORT, LABST LIKE MARD-LABST, END OF ITAB. SELECT-OPTIONS: S_MATNR FOR ITAB-MATNR. PARAMETERS: P_MANU RADIOBUTTON GROUP G1, P_AUTO RADIOBUTTON GROUP G1. TYPE-POOLS: SLIS. DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV, WA_FLDCAT LIKE LINE OF IT_FLDCAT, WA_LAYO TYPE SLIS_LAYOUT_ALV. START-OF-SELECTION. PERFORM GET_DATA. PERFORM GENERATE_FLDCAT. PERFORM GENERATE_LAYOUT. END-OF-SELECTION. PERFORM SHOW_GRID. FORM GET_DATA . SELECT A~MATNR 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 GENERATE_FLDCAT . IF P_MANU = 'X'. WA_FLDCAT-col_pos = 1. WA_FLDCAT-fieldname = 'MATNR'. WA_FLDCAT-outputlen = 18. WA_FLDCAT-seltext_m = 'Material No'. WA_FLDCAT-ddictxt = 'M'. WA_FLDCAT-KEY = 'X'. APPEND WA_FLDCAT TO IT_FLDCAT. CLEAR WA_FLDCAT. *--2ND 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. *--3rd WA_FLDCAT-col_pos = 2. WA_FLDCAT-fieldname = 'WERKS'. WA_FLDCAT-outputlen = 6. WA_FLDCAT-seltext_m = 'Plant'. WA_FLDCAT-ddictxt = 'M'. APPEND WA_FLDCAT TO IT_FLDCAT. *--4th WA_FLDCAT-col_pos = 3. WA_FLDCAT-fieldname = 'LGORT'. WA_FLDCAT-outputlen = 7. WA_FLDCAT-seltext_m = 'Str.Loc'. WA_FLDCAT-ddictxt = 'M'. APPEND WA_FLDCAT TO IT_FLDCAT. *--5th WA_FLDCAT-col_pos = 5. WA_FLDCAT-fieldname = 'LABST'. WA_FLDCAT-outputlen = 20. WA_FLDCAT-seltext_m = 'Qty'. WA_FLDCAT-ddictxt = 'M'. APPEND WA_FLDCAT TO IT_FLDCAT. ELSE. *--Auto generation of fldcat CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING I_PROGRAM_NAME = 'ZALV_2' I_INTERNAL_TABNAME = 'ITAB' * I_STRUCTURE_NAME = I_INCLNAME = 'ZALV_2' CHANGING CT_FIELDCAT = IT_FLDCAT EXCEPTIONS INCONSISTENT_INTERFACE = 1 PROGRAM_ERROR = 2 OTHERS = 3. IF SY-SUBRC <> 0. MESSAGE E000(Z00) WITH 'Error in Generating Fieldcatalog'. ELSE. *--Modifying Fldcat LOOP AT IT_FLDCAT INTO WA_FLDCAT. CASE wa_fldcat-fieldname. WHEN 'MATNR'. WA_FLDCAT-REF_TABNAME = SPACE. * WA_FLDCAT-HOTSPOT = 'X'. WHEN 'WERKS' OR 'LGORT'. * WA_FLDCAT-KEY = SPACE. WA_FLDCAT-REF_TABNAME = SPACE. ENDCASE. MODIFY IT_FLDCAT FROM WA_FLDCAT. ENDLOOP. ENDIF. ENDIF. ENDFORM. " GENERATE_FLDCAT 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 = * I_GRID_SETTINGS = IS_LAYOUT = WA_LAYO 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 = * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = 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 GENERATE_LAYOUT . WA_LAYO-ZEBRA = 'X'. * WA_LAYO-NO_VLINE = 'X'. * WA_LAYO-NO_HLINE = 'X'. * WA_LAYO-edit = ' '. * WA_LAYO-colwidth_optimize = 'X'. WA_LAYO-key_hotspot = 'X'. ENDFORM. " GENERATE_LAYOUT