Interactive Reports Example

INTERACTIVE REPORTS USING HIDE
1)Business Req: Develop a Material master Report to display data in BASIC list and Desc details in SECONDARY list.

REPORT  ZINTERACTIVE.

TYPES: 
BEGIN 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.
TYPES: 
BEGIN OF TY_MAKT,
       MATNR 
TYPE MAKT-MATNR,
       SPRAS 
TYPE MAKT-SPRAS,
       MAKTX 
TYPE MAKT-MAKTX,
       MAKTG 
TYPE MAKT-MAKTG,
       
END OF TY_MAKT.

DATA: I_MARA 
TYPE TABLE OF TY_MARA.
DATA: WA_MARA 
TYPE  TY_MARA.

DATA: I_MAKT 
TYPE TABLE OF TY_MAKT.
DATA: WA_MAKT 
TYPE TY_MAKT.
PARAMETERS P_MAKTL TYPE MARA-MATKL.
SELECT MATNR
       MTART
       MBRSH
       MATKL
       MEINS 
FROM MARA
       
INTO TABLE I_MARA WHERE MATKL = P_MAKTL.LOOP AT I_MARA INTO WA_MARA.
WRITE:/ WA_MARA-MATNR,
        WA_MARA-MTART,
        WA_MARA-MBRSH,
        WA_MARA-MATKL,
        WA_MARA-MEINS.
HIDE: WA_MARA-MATNR.
ENDLOOP.
AT LINE-SELECTION.

  
SELECT MATNR SPRAS MAKTX MAKTG
         
FROM MAKT
         
INTO TABLE I_MAKT
         
WHERE MATNR = WA_MARA-MATNR.LOOP AT I_MAKT INTO WA_MAKT.
WRITE:/ WA_MAKT-MATNR,
        WA_MAKT-SPRAS,
        WA_MAKT-MAKTG,
        WA_MAKT-MAKTX.
ENDLOOP.
The Input Screen is:





The Output Screen is:










Double Click on Any Material no , It will displays Secondary List As Below.










Unit Testing (In Depth Subject):

Go to MM03
Give any Material no, Ex: AS-200
Press Enter
Select BASIC DATA1, Press Enter








2)Business Req: Develop a Purchase order Report to display PO Header data in BASIC list and PO Item details in SECONDARY list .

TYPES: BEGIN OF TY_EKKO,
       EBELN 
TYPE EKKO-EBELN,
       BUKRS 
TYPE EKKO-BUKRS,
       AEDAT 
TYPE EKKO-AEDAT,
       ERNAM 
TYPE EKKO-ERNAM,
       LIFNR 
TYPE EKKO-LIFNR,
       
END OF TY_EKKO.TYPES BEGIN OF TY_EKPO,
        EBELN 
TYPE EKPO-EBELN,
        EBELP 
TYPE EKPO-EBELP,
        MATNR 
TYPE EKPO-MATNR,
        MENGE 
TYPE EKPO-MENGE,
        NETPR 
TYPE EKPO-NETPR,
        
END OF TY_EKPO.

DATA: I_EKKO 
TYPE TABLE OF TY_EKKO.
DATA: WA_EKKO 
TYPE TY_EKKO.

DATA: I_EKPO 
TYPE TABLE OF TY_EKPO.
DATA: WA_EKPO 
TYPE TY_EKPO.
PARAMETERS : P_BUKRS TYPE EKKO-BUKRS.
SELECT EBELN BUKRS AEDAT ERNAM LIFNR FROM EKKO INTO TABLE I_EKKO 
WHERE BUKRS = P_BUKRS .
LOOP AT I_EKKO INTO WA_EKKO.
  
WRITE : / WA_EKKO-EBELN,
            WA_EKKO-BUKRS,
            WA_EKKO-AEDAT,
            WA_EKKO-ERNAM,
            WA_EKKO-LIFNR .
  
HIDE : WA_EKKO-EBELN .
  ENDLOOP.

  
AT LINE-SELECTION .
    
SELECT EBELN EBELP MATNR MENGE NETPR FROM EKPO
                     
INTO TABLE I_EKPO
                     
WHERE EBELN = WA_EKKO-EBELN .
  
LOOP AT I_EKPO INTO WA_EKPO.
    
WRITE : / WA_EKPO-EBELN,
              WA_EKPO-EBELP,
              WA_EKPO-MATNR,
              WA_EKPO-MENGE,
              WA_EKPO-NETPR.
  ENDLOOP.



The Input Screen is:










The Output Screen is:










Double Click on Any Purchaseno , It will displays Secondary List As Below.



Unit Testing (In Depth Subject):

Go to ME23N
Click On OtherPurchaseOrder Button,
Give the PurchaseNo Ex: 4500017125
Press Enter


INTERACTIVE REPORTS USING GET CURSOR

1)Business Req: Develop a Material master Report to display Material general data in BASIC list with below functionality.
                        On double-click of material no, display description details.
                        On double-click of material type , display material type details.
                        On double-click of material group , display material group details.

DATA: I_MARA TYPE TABLE OF MARA.
DATA: WA_MARA 
TYPE MARA.

DATA: I_MAKT 
TYPE TABLE OF MAKT.
DATA: WA_MAKT 
TYPE MAKT.

DATA: WA_T134 
TYPE T134.
DATA: WA_T023 
TYPE T023.

DATA: V_FNAME 
TYPE STRING.
DATA: V_FVAL(20) 
TYPE C .

DATA: V_MATNR 
TYPE MARA-MATNR.
SELECT FROM MARA INTO TABLE I_MARA UP TO 100 ROWS.
LOOP AT I_MARA INTO WA_MARA.
  WRITE:/ WA_MARA-MATNR,
          WA_MARA-MTART,
          wa_mara-matkl.
ENDLOOP.
AT LINE-SELECTION.
  
GET CURSOR FIELD V_FNAME
             
VALUE V_FVAL.

  
IF V_FNAME = 'WA_MARA-MATNR' .
    
PERFORM DISPLAY_DESC_DETAILS.
  
ELSEIF V_FNAME = 'WA_MARA-MTART'.
    
PERFORM DISPALY_MTART_DETAILS.
  
ELSEIF V_FNAME = 'WA_MARA-MATKL'.
    
PERFORM DISPLAY_MAKTL_DETAILS.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_DESC_DETAILS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_DESC_DETAILS .CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
  
EXPORTING
    
INPUT              = V_FVAL
 
IMPORTING
   
OUTPUT             = V_MATNR.
REFRESH i_makt.
SELECT FROM MAKT INTO TABLE I_MAKT
                   
WHERE MATNR = V_MATNR.LOOP AT I_MAKT INTO WA_MAKT.
WRITE:/ WA_MAKT-MATNR,
        WA_MAKT-SPRAS,
        WA_MAKT-MAKTX.
ENDLOOP.
ENDFORM.                    
" DISPLAY_DESC_DETAILS
*&---------------------------------------------------------------------*
*&      Form  DISPALY_MTART_DETAILS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPALY_MTART_DETAILS .CLEAR WA_T134.SELECT SINGLE FROM T134
  
INTO WA_T134 WHERE MTART = V_FVAL.

WRITE:/ wa_t134-mtart,
        WA_T134-MTREF,
        WA_T134-PSTAT.
ENDFORM.                    
" DISPALY_MTART_DETAILS
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_MAKTL_DETAILS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_MAKTL_DETAILS .CLEAR wa_t023.SELECT SINGLE FROM T023
      
INTO WA_T023 WHERE MATKL = V_FVAL.

WRITE:/ WA_T023-MATKL,
        WA_T023-SPART,
        WA_T023-ABTNR.
ENDFORM.                    
" DISPLAY_MAKTL_DETAILS






2)Business Req: Develop a Purchase order Report to display PO Header data in BASIC list with below functionality.

                        On double-click of PO no, display Item details.
                        On double-click of Vendor No , display Vendor details.

TYPES BEGIN OF TY_EKKO,
        EBELN 
TYPE EKKO-EBELN,
        BUKRS 
TYPE EKKO-BUKRS,
        AEDAT 
TYPE EKKO-AEDAT,
        ERNAM 
TYPE EKKO-ERNAM,
        LIFNR 
TYPE EKKO-LIFNR,
        
END OF TY_EKKO.
TYPES BEGIN OF TY_EKPO,
        EBELN 
TYPE EKPO-EBELN,
        EBELP 
TYPE EKPO-EBELP,
        MATNR 
TYPE EKPO-MATNR,
        MENGE 
TYPE EKPO-MENGE,
        NETPR 
TYPE EKPO-NETPR,
        
END OF TY_EKPO.
DATA : I_EKKO TYPE TABLE OF TY_EKKO.DATA : I_EKPO TYPE TABLE OF TY_EKPO.DATA : WA_EKKO TYPE TY_EKKO .DATA : WA_EKPO TYPE TY_EKPO .DATA : WA_LFA1 TYPE LFA1.
DATA : V_FNAME TYPE STRING .DATA : V_FVAL(25) TYPE C .DATA : V_LIFNR TYPE LFA1-LIFNR .DATA : V_EBELN TYPE EKKO-EBELN .
PARAMETERS : P_BUKRS TYPE EKKO-BUKRS.
SELECT EBELN BUKRS AEDAT ERNAM LIFNR FROM EKKO
       
INTO TABLE I_EKKO WHERE BUKRS = P_BUKRS .
LOOP AT I_EKKO INTO WA_EKKO.
  
WRITE : / WA_EKKO-EBELN,
            WA_EKKO-BUKRS,
            WA_EKKO-AEDAT,
            WA_EKKO-ERNAM,
            WA_EKKO-LIFNR .
ENDLOOP.

AT LINE-SELECTION .
  
GET CURSOR FIELD V_FNAME
             
VALUE V_FVAL .

  
IF V_FNAME = 'WA_EKKO-EBELN' .
    
PERFORM DISPLAY_PO_ITEMS .
  
ELSEIF V_FNAME = 'WA_EKKO-LIFNR' .
    
PERFORM DISPLAY_VENDOR_DETAILS.
  
ENDIF .

*&---------------------------------------------------------------------*
*& Form DISPLAY_PO_ITEMS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DISPLAY_PO_ITEMS .
  
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    
EXPORTING
      
INPUT  = V_FVAL
    
IMPORTING
      
OUTPUT = V_EBELN.
  
SELECT EBELN EBELP MATNR MENGE NETPR FROM EKPO INTO TABLE
               I_EKPO 
WHERE EBELN = V_EBELN .
  
LOOP AT I_EKPO INTO WA_EKPO.
    
WRITE : / WA_EKPO-EBELN,
              WA_EKPO-EBELP,
              WA_EKPO-MATNR,
              WA_EKPO-MENGE,
              WA_EKPO-NETPR.
  ENDLOOP.
ENDFORM "DISPLAY_PO_ITEMS
*&---------------------------------------------------------------------*
*& Form FORM
*&---------------------------------------------------------------------*
FORM DISPLAY_VENDOR_DETAILS.
  
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    
EXPORTING
      
INPUT  = V_FVAL
    
IMPORTING
      
OUTPUT = V_LIFNR.
  
SELECT SINGLE FROM LFA1 INTO WA_LFA1 WHERE LIFNR = V_LIFNR .
  
WRITE : / WA_LFA1-LIFNR ,
            WA_LFA1-LAND1 ,
            WA_LFA1-NAME1 ,
            WA_LFA1-ORT01 .
ENDFORM "FORM ENDLOOP.





INTERACTIVE REPORTS USING CUSTOM BUTTONS

1)Business Req: Develop a Material Master Report with below functionality.
Place 3 custom buttons on Application Tool Bar
SelectAll, De-SelectAll, Download
Whenever the userclick on Download, The selected records should be downloaded into FlatFile

TYPES: BEGIN OF TY_MARA,
       CHK(1) 
TYPE C,
       MATNR 
TYPE MARA-MATNR,
       MTART 
TYPE MARA-MTART,
       MBRSH 
TYPE MARA-MBRSH,
       MEINS 
TYPE MARA-MEINS,
       
END OF TY_MARA.

TYPES: 
BEGIN OF TY_MARA2,
       MATNR 
TYPE MARA-MATNR,
       MTART 
TYPE MARA-MTART,
       MBRSH 
TYPE MARA-MBRSH,
       MEINS 
TYPE MARA-MEINS,
       
END OF TY_MARA2.

TYPES: 
BEGIN OF TY_MARA3,
       MATNR 
TYPE MARA-MATNR,
       MTART 
TYPE MARA-MTART,
       MBRSH 
TYPE MARA-MBRSH,
       MEINS 
TYPE MARA-MEINS,
       
END OF TY_MARA3.

DATA: I_MARA 
TYPE TABLE OF TY_MARA.
DATA: WA_MARA 
TYPE TY_MARA.

DATA: I_MARA2 
TYPE TABLE OF TY_MARA2.
DATA: WA_MARA2 
TYPE TY_MARA2.

DATA: I_MARA3 
TYPE TABLE OF TY_MARA3.
DATA: WA_MARA3 
TYPE TY_MARA3.

DATA: V_LINES 
TYPE I.
DATA: V_LINES1 
TYPE I.
DATA: V_LINES2 
TYPE I.








SET PF-STATUS 'MENU'.------>Double click and Create 3

Similarly, Activate BACK Button.
Save->Activate

SELECT FROM MARA INTO CORRESPONDING FIELDS OF TABLE I_MARA 
                                        WHERE MTART = 'FERT'.LOOP AT I_MARA INTO WA_MARA.

      WRITE:/ WA_MARA-CHK 
AS CHECKBOX,
              WA_MARA-MATNR,
              WA_MARA-MTART,
              WA_MARA-MBRSH,
              WA_MARA-MEINS.

    ENDLOOP.
AT USER-COMMAND.

  SY-LSIND = 
0.

  
IF SY-UCOMM = 'SALL'.
    
LOOP AT I_MARA INTO WA_MARA.
      WA_MARA-CHK = 
'X'.
      WRITE:/ WA_MARA-CHK 
AS CHECKBOX,
              WA_MARA-MATNR,
              WA_MARA-MTART,
              WA_MARA-MBRSH,
              WA_MARA-MEINS.

    ENDLOOP.
  
ELSEIF SY-UCOMM = 'DALL'.
    
LOOP AT I_MARA INTO WA_MARA.
      WA_MARA-CHK = 
' '.
      WRITE:/ WA_MARA-CHK 
AS CHECKBOX,
               WA_MARA-MATNR,
               WA_MARA-MTART,
               WA_MARA-MBRSH,
               WA_MARA-MEINS.
    ENDLOOP.

  
ELSEIF SY-UCOMM = 'DLOAD'.

    
DESCRIBE TABLE I_MARA LINES V_LINES.
    
DO V_LINES TIMES.
      
READ LINE SY-INDEX FIELD VALUE WA_MARA-CHK
                                     WA_MARA-MATNR
                                     WA_MARA-MTART
                                     WA_MARA-MBRSH
                                     WA_MARA-MEINS.
      
      IF WA_MARA-CHK = 'X'.
        
MOVE-CORRESPONDING WA_MARA TO WA_MARA2.
        
APPEND WA_MARA2 TO I_MARA2.

        
DESCRIBE TABLE I_MARA2 LINES V_LINES1.
      
ELSEIF WA_MARA-CHK = ' '.
        
MOVE-CORRESPONDING WA_MARA TO WA_MARA3.
        
APPEND WA_MARA3 TO I_MARA3.

        
DESCRIBE TABLE I_MARA3 LINES V_LINES2.
      ENDIF.
    ENDDO.
    
IF V_LINES2 <> '0' AND V_LINES1 = '0'.
      
MESSAGE 'PLEASE SELECT THE RECORDS FOR DOWNLOAD' TYPE