Field Catalog
Field catalog is an internal table which is used to pass list of fields to display in ALV report, we can set different properties to fields which are going to display in ALV.
Type Group
It is a data dictionary objects which contains all the reusable user-defined types.
Example for a type group is SLIS
, which contains all the user-defined types for developing ALV reports.TYPE-POOLS
is a keyword which is used to assign the type-group to a ALV report .Syntax : TYPE-POOLS SLIS . "TO USE FIELD CATALOG WE HAVE TO INCLUDE SLIS TYPE-POOLS DATA : <IT_FCAT> TYPE SLIS_T_FIELDCAT_ALV . "INTERNAL TABLE FOR FIELD CATALOG DATA : <WA_FCAT> TYPE SLIS_FIELDCAT_ALV . " WORK AREA FOR FIELD CATLOG
Options/properties of field catalog.
WA_FCAT-COL_POS = '1' . "Specify position of a field WA_FCAT-FIELDNAME = 'MATNR' . "Specify field name WA_FCAT-TABNAME = 'IT_MARA' . "Specify internal table name WA_FCAT-SELTEXT_M = 'MATERIALNO' . "Specify text to display column header WA_FCAT-KEY = 'X' . "Specify if it is a key field APPEND WA_FCAT TO IT_FCAT . "Append to field catalog internal table
Useful resourse Using append in SAP ABAP and also Using Clear in SAP ABAP
To develop above report we have to use field catalog (because we have to display four fields only from MARA) and we have to pass foeld catalog parameter to Function Module
REUSE_ALV_GIRD_DISPLAY
.REPORT ZSAPN_ALV_FCAT. TABLES : MARA. TYPE-POOLS SLIS . TYPES : BEGIN OF TY_MARA, "User defined internal table type MATNR TYPE MARA-MATNR, MTART TYPE MARA-MTART, MBRSH TYPE MARA-MBRSH, MEINS TYPE MARA-MEINS, END OF TY_MARA. DATA : IT_MARA TYPE TABLE OF TY_MARA . DATA : WA_MARA TYPE TY_MARA . DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV . DATA : WA_FCAT LIKE LINE OF IT_FCAT . SELECT-OPTIONS: S_MATNR FOR MARA-MATNR. START-OF-SELECTION . PERFORM GET_DATA . PERFORM CREATE_FCAT. END-OF-SELECTION . PERFORM DISP_ALV . *&---------------------------------------------------------------------* *& Form GET_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM GET_DATA . SELECT MATNR MTART MBRSH MEINS FROM MARA INTO TABLE IT_MARA WHERE MATNR IN S_MATNR. . ENDFORM. " GET_DATA *&---------------------------------------------------------------------* *& Form DISP_ALV *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM DISP_ALV . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-REPID IT_FIELDCAT = IT_FCAT "PASS FIELD CATALOG TO ALV TABLES T_OUTTAB = IT_MARA. ENDFORM. " DISP_ALV *&---------------------------------------------------------------------* *& Form CREATE_FCAT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM CREATE_FCAT . WA_FCAT-COL_POS = '1' . WA_FCAT-FIELDNAME = 'MATNR' . WA_FCAT-TABNAME = 'IT_MARA' . WA_FCAT-SELTEXT_M = 'MATERIALNO' . WA_FCAT-KEY = 'X' . APPEND WA_FCAT TO IT_FCAT . CLEAR WA_FCAT . WA_FCAT-COL_POS = '2' . WA_FCAT-FIELDNAME = 'MTART' . WA_FCAT-TABNAME = 'IT_MARA' . WA_FCAT-SELTEXT_M = 'MATERIALTYPE' . * WA_FCAT-NO_OUT = 'X' . WA_FCAT-HOTSPOT = 'X' . APPEND WA_FCAT TO IT_FCAT . CLEAR WA_FCAT . WA_FCAT-COL_POS = '3' . WA_FCAT-FIELDNAME = 'MBRSH' . WA_FCAT-REF_FIELDNAME = 'MBRSH' . WA_FCAT-REF_TABNAME = 'MARA' . * WA_FCAT-TABNAME = 'IT_MARA' . * WA_FCAT-SELTEXT_M = 'INDSECTOR' . * WA_FCAT-EDIT = 'X' . APPEND WA_FCAT TO IT_FCAT . CLEAR WA_FCAT . WA_FCAT-COL_POS = '4' . WA_FCAT-FIELDNAME = 'MEINS' . WA_FCAT-TABNAME = 'IT_MARA' . WA_FCAT-SELTEXT_M = 'MAT.UNITS' . WA_FCAT-EMPHASIZE = 'C610'. APPEND WA_FCAT TO IT_FCAT . CLEAR WA_FCAT . ENDFORM. " CREATE_FCAT
No comments:
Post a Comment