BLOCKED LIST ALV IS USED TO DISPLAY MULTIPLE ALV ON THE SAME SCREEN WITH BLOCKS.(3 TABLES)



      BLOCK REPORTING


*&---------------------------------------------------------------------*
*& Report  ZBLOK_ALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZBLOK_ALV.

TYPE-POOLSSLIS.

TABLES MARAMAKT,MARD.

TYPESBEGIN OF TY_MARA,
        MATNR 
TYPE MARA-MATNR,
        MTART 
TYPE MARA-MTART,
        MBRSH 
TYPE MARA-MBRSH,
        MATKL 
TYPE MARA-MATKL,
        MEINS 
TYPE MARA-MEINS,
      
END OF TY_MARA.



DATAIT_MARA TYPE TABLE OF TY_MARA,
      WA_MARA 
TYPE TY_MARA.

DATA:IT_FCAT TYPE  SLIS_T_FIELDCAT_ALV,
      WA_FCAT 
LIKE LINE OF IT_FCAT.


TYPESBEGIN OF TY_MAKT,
        MATNR 
TYPE MAKT-MATNR,
        MAKTX 
TYPE MAKT-MAKTX,
        MAKTG 
TYPE MAKT-MAKTG,
      
END OF TY_MAKT.


DATAIT_MAKT TYPE TABLE OF TY_MAKT,
      WA_MAKT 
TYPE TY_MAKT.

DATA:IT_FCAT1 TYPE  SLIS_T_FIELDCAT_ALV,
      WA_FCAT1 
LIKE LINE OF IT_FCAT1.

TYPESBEGIN OF TY_MARD,
        MATNR 
TYPE MARD-MATNR,
        WERKS 
TYPE MARD-WERKS,
        LGORT 
TYPE MARD-LGORT,
        PSTAT 
TYPE MARD-PSTAT,
      
END OF TY_MARD.

 
DATAIT_MARD TYPE TABLE OF TY_MARD,
      WA_MARD 
TYPE TY_MARD.

 
DATA:IT_FCAT2 TYPE  SLIS_T_FIELDCAT_ALV,
      WA_FCAT2 
LIKE LINE OF IT_FCAT2.


DATAIS_LAYOUT TYPE  SLIS_LAYOUT_ALV,

      IT_EVENTS 
TYPE  SLIS_T_EVENT.


 
PARAMETERSP_MTART TYPE MARA-MTART.


   
START-OF-SELECTION.


  
PERFORM GET_DATA.

 
PERFORM FCAT_DATA.

 
PERFORM DISPLAY_BLOCK.




*&---------------------------------------------------------------------*
*&      Form  FCAT_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FCAT_DATA .

  WA_FCAT
-COL_POS 1.
  WA_FCAT
-FIELDNAME 'MATNR'.
  WA_FCAT
-REF_FIELDNAME 'MATNR'.
  WA_FCAT
-REF_TABNAME 'MARA'.

  
APPEND WA_FCAT TO IT_FCAT.
  
CLEAR WA_FCAT.



  WA_FCAT
-COL_POS 2.
  WA_FCAT
-FIELDNAME 'MTART'.
  WA_FCAT
-REF_FIELDNAME 'MTART'.
  WA_FCAT
-REF_TABNAME 'MARA'.

  
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'.

  
APPEND WA_FCAT TO IT_FCAT.
  
CLEAR WA_FCAT.

  WA_FCAT
-COL_POS 4.
  WA_FCAT
-FIELDNAME 'MATKL'.
  WA_FCAT
-REF_FIELDNAME 'MATKL'.
  WA_FCAT
-REF_TABNAME 'MARA'.

  
APPEND WA_FCAT TO IT_FCAT.
  
CLEAR WA_FCAT.


  WA_FCAT
-COL_POS 5.
  WA_FCAT
-FIELDNAME 'MEINS'.
  WA_FCAT
-REF_FIELDNAME 'MEINS'.
  WA_FCAT
-REF_TABNAME 'MARA'.

  
APPEND WA_FCAT TO IT_FCAT.
  
CLEAR WA_FCAT.



  WA_FCAT1
-COL_POS 1.
  WA_FCAT1
-FIELDNAME 'MATNR'.
  WA_FCAT1
-REF_FIELDNAME 'MATNR'.
  WA_FCAT1
-REF_TABNAME 'MAKT'.

  
APPEND WA_FCAT1 TO IT_FCAT1.
  
CLEAR WA_FCAT1.



  WA_FCAT1
-COL_POS 2.
  WA_FCAT1
-FIELDNAME 'MAKTX'.
  WA_FCAT1
-REF_FIELDNAME 'MATKX'.
  WA_FCAT1
-REF_TABNAME 'MAKT'.

  
APPEND WA_FCAT1 TO IT_FCAT1.
  
CLEAR WA_FCAT1.

  WA_FCAT1
-COL_POS 3.
  WA_FCAT1
-FIELDNAME 'MAKTG'.
  WA_FCAT1
-REF_FIELDNAME 'MATKG'.
  WA_FCAT1
-REF_TABNAME 'MAKT'.

  
APPEND WA_FCAT1 TO IT_FCAT1.
  
CLEAR WA_FCAT1.


  WA_FCAT2
-COL_POS 1.
  WA_FCAT2
-FIELDNAME 'MATNR'.
  WA_FCAT2
-REF_FIELDNAME 'MATNR'.
  WA_FCAT2
-REF_TABNAME 'MARD'.

  
APPEND WA_FCAT2 TO IT_FCAT2.
  
CLEAR WA_FCAT2.


  WA_FCAT2
-COL_POS 2.
  WA_FCAT2
-FIELDNAME 'WERKS'.
  WA_FCAT2
-REF_FIELDNAME 'WERKS'.
  WA_FCAT2
-REF_TABNAME 'MARD'.

  
APPEND WA_FCAT2 TO IT_FCAT2.
  
CLEAR WA_FCAT2.




  WA_FCAT2
-COL_POS 3.
  WA_FCAT2
-FIELDNAME 'LGORT'.
  WA_FCAT2
-REF_FIELDNAME 'LGORT'.
  WA_FCAT2
-REF_TABNAME 'MARD'.

  
APPEND WA_FCAT2 TO IT_FCAT2.
  
CLEAR WA_FCAT2.


  WA_FCAT2
-COL_POS 4.
  WA_FCAT2
-FIELDNAME 'PSTAT'.
  WA_FCAT2
-REF_FIELDNAME 'PSTAT'.
  WA_FCAT2
-REF_TABNAME 'MARD'.

  
APPEND WA_FCAT2 TO IT_FCAT2.
  
CLEAR WA_FCAT2.

  IS_LAYOUT
-ZEBRA 'X'.



ENDFORM.                    " FCAT_DATA
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_BLOCK
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_BLOCK .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
  
EXPORTING
    I_CALLBACK_PROGRAM             
SY-REPID
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   IT_EXCLUDING                   =
          
.





  
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  
EXPORTING
    IS_LAYOUT                        
IS_LAYOUT
    IT_FIELDCAT                      
IT_FCAT
    I_TABNAME                        
'MARA'
    IT_EVENTS                        
IT_EVENTS
*   IT_SORT                          =
*   I_TEXT                           = ' '
  
TABLES
    T_OUTTAB                         
IT_MARA
  
EXCEPTIONS
    PROGRAM_ERROR                    
1
    MAXIMUM_OF_APPENDS_REACHED       
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.
  
ENDIF.


  
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  
EXPORTING
    IS_LAYOUT                        
IS_LAYOUT
    IT_FIELDCAT                      
IT_FCAT1
    I_TABNAME                        
'MAKT'
    IT_EVENTS                        
IT_EVENTS
*   IT_SORT                          =
*   I_TEXT                           = ' '
  
TABLES
    T_OUTTAB                         
IT_MAKT
  
EXCEPTIONS
    PROGRAM_ERROR                    
1
    MAXIMUM_OF_APPENDS_REACHED       
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.
  
ENDIF.


  
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  
EXPORTING
    IS_LAYOUT                        
IS_LAYOUT
    IT_FIELDCAT                      
IT_FCAT2
    I_TABNAME                        
'MARD'
    IT_EVENTS                        
IT_EVENTS
*   IT_SORT                          =
*   I_TEXT                           = ' '
  
TABLES
    T_OUTTAB                         
IT_MARD
  
EXCEPTIONS
    PROGRAM_ERROR                    
1
    MAXIMUM_OF_APPENDS_REACHED       
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.
  
ENDIF.


    
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
*   EXPORTING
*     I_INTERFACE_CHECK             = ' '
*     IS_PRINT                      =
*     I_SCREEN_START_COLUMN         = 0
*     I_SCREEN_START_LINE           = 0
*     I_SCREEN_END_COLUMN           = 0
*     I_SCREEN_END_LINE             = 0
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER       =
*     ES_EXIT_CAUSED_BY_USER        =
*   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.                    " DISPLAY_BLOCK




*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_DATA .


  
SELECT MATNR MTART MBRSH MATKL MEINS FROM MARA
  
INTO TABLE IT_MARA UP TO 10 ROWS
  
WHERE MTART P_MTART.

  
IF  IT_MARA IS NOT INITIAL .


    
SELECT MATNR
    MAKTX
    MAKTG  
FROM MAKT INTO TABLE IT_MAKT
    
FOR ALL ENTRIES  IN IT_MARA
    
WHERE MATNR IT_MARA-MATNR.

  
ENDIF.


  
IF  IT_MAKT IS NOT INITIAL .


    
SELECT  MATNR
    WERKS
    LGORT
    PSTAT
    
FROM MARD INTO TABLE IT_MARD
    
FOR ALL ENTRIES IN IT_MAKT
    
WHERE MATNR IT_MAKT-MATNR.

  
ENDIF.


ENDFORM.                    " GET_DATA



Comments

Popular posts from this blog

FOR ALL ENTRIES (FAE) -4 TABLES USING ALV_GRID_DISPLAY

RADIO-BUTTONS IN BASIC REPORT