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

Popular posts from this blog

ALV with field catalog merge

SAP ABAP real-time Interview Questions with answers

Using GUI Upload in SAP ABAP