Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Drill Down Report

Former Member
0 Likes
528

Hi All,

What is drill down reports?

Can any body give some invaluable inputs?

Regards,

AK

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
471

Hi,

With drilldown reporting, SAP provides you with an interactive information system to let you evaluate the data collected in your application. This information system is capable of analyzing all the data according to any of the characteristics that describe the data. You can also use any key figures you wish to categorize your data. You can display a number of objects for a given key figure, or a number of key figures for a given object. In addition, the system lets you carry out any number of variance analyses (such as plan/actual comparisons, fiscal year comparisons, comparisons of different objects, and so on).

<b>Example Code For Drill Down Report</b>

REPORT  zmm_rept_purchorderkkb01 LINE-SIZE 80
                                 LINE-COUNT 65(3)
                                 MESSAGE-ID z_msg_class
                                 NO STANDARD PAGE HEADING.

*------------------DECLARING THE STANDARD TABLES---------------------*
TABLES : ekko, "PURCHASE ORDER : HEADER
         ekpo. "PURCHASE ORDER : ITEM

*------------------DECLARING THE INTERNAL TABLE----------------------*
DATA  : BEGIN OF it_ekko OCCURS 2,
          ebeln LIKE ekko-ebeln, "PURCHASE ORDER NUMBER
          bukrs LIKE ekko-bukrs, "COMPANY CODE
          bsart LIKE ekko-bsart, "PURCHASING DOCUMENT TYPE
          lifnr LIKE ekko-lifnr, "VENDOR
          spras LIKE ekko-spras, "LANGUAGE KEY
          zterm LIKE ekko-zterm, "PAYMENT TERMS KEY
        end of it_ekko.

DATA  : BEGIN OF it_ekpo OCCURS 2,
          ebeln LIKE ekpo-ebeln, "PURCHASE ORDER NUMBER
          ebelp LIKE ekpo-ebelp, "PURCHASE ORDER NUMBER
          werks LIKE ekpo-werks, "PLANT
          matnr LIKE ekpo-matnr, "MATERIAL NUMBER
          matkl LIKE ekpo-matkl, "MATERIAL GROUP
        END OF it_ekpo.

DATA: it_ebeln LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.

*DATA: it_ebeln_high LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.

DATA: p_ebeln       TYPE i.

*------------------Declaring the selection screen--------------------*

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_ebeln FOR ekko-ebeln.

PARAMETER      : p_limit TYPE i.

SELECTION-SCREEN END OF BLOCK blk1.


*INCLUDE z_incl_purorderkkb01_sub_f01.


*--------------------------------------------------------------------*
*  Validation for  number of records to be printed                   *
*--------------------------------------------------------------------*

*AT SELECTION-SCREEN ON p_limit.
*  IF p_limit IS INITIAL.
*    MESSAGE e011.
*  ENDIF.


*  IF p_limit GT sy-linct.
*    MESSAGE e010.
*  ENDIF.


*----------------------------------------------------------------------*
*        Search help for purchase document number (s_ebeln-low)        *
*----------------------------------------------------------------------*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-low.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = s_ebeln-low
    IMPORTING
      output = s_ebeln-low.

  perform form_search_help.

  IF sy-subrc <> 0.
    CASE sy-subrc.
      WHEN 2.
        LEAVE TO SCREEN 1000.
    ENDCASE.
  ELSE.
    LOOP AT it_ebeln.
      IF sy-tabix = p_ebeln.
        s_ebeln-low = it_ebeln.
        EXIT.
      ENDIF.
    ENDLOOP.
  ENDIF.

*----------------------------------------------------------------------*
*        Search help for purchase document number (s_ebeln-high)       *
*----------------------------------------------------------------------*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-high.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = s_ebeln-high
    IMPORTING
      output = s_ebeln-high.

  perform form_search_help.

  IF sy-subrc <> 0.
    CASE sy-subrc.
      WHEN 2.
        LEAVE TO SCREEN 1000.
    ENDCASE.
  ELSE.
    LOOP AT it_ebeln.
      IF sy-tabix = p_ebeln.
        s_ebeln-high = it_ebeln.
        EXIT.
      ENDIF.
    ENDLOOP.
  ENDIF.

*----------------------------------------------------------------------*
*                   Start-of-selection event                           *
*----------------------------------------------------------------------*

START-OF-SELECTION.

*----------------------To attach a user interface----------------------*
SET PF-STATUS '0010'.

*---------To fetch the data for the basic list-------------------------*
    SELECT ebeln                   "PURCHASE ORDER NUMBER
           bukrs                   "COMPANY CODE
           bsart                   "PURCHASING DOCUMENT TYPE
           lifnr                   "VENDOR
           spras                   "LANGUAGE KEY
           zterm                   "PAYMENT TERMS KEY
     up to p_limit rows
     into table it_ekko from ekko
     where ebeln in s_ebeln.

     REFRESH it_ekpo.

*---------To fetch the data for the secondary list-----------------------*

if it_ekpo is initial.

    SELECT ebeln "PURCHASE ORDER NUMBER
           ebelp "PURCHASING DOCUMENT TYPE
           werks "PLANT
           matnr "MATERIAL NUMBER
           matkl "MATERIAL GROUP
    FROM ekpo  INTO TABLE it_ekpo for all entries in it_ekko
    WHERE ebeln EQ it_ekko-ebeln.

endif.

*----------------------------------------------------------------------*
*                   End-of-selection event                             *
*----------------------------------------------------------------------*

END-OF-SELECTION.


*---------To display the data for the basic list-----------------------*
   format color 4 intensified off.
  LOOP AT it_ekko.
    WRITE :/ sy-vline, it_ekko-ebeln UNDER text-002, 18 sy-vline,
                                                    "PURCHASE ORDER NUMBER
                       it_ekko-bukrs UNDER text-003, 27 sy-vline,
                                                    "COMPANY CODE
                       it_ekko-bsart UNDER text-004, 38 sy-vline,
                                                    "PURCHASING DOCUMENT TYPE
                       it_ekko-lifnr UNDER text-005, 50 sy-vline,
                                                    "VENDOR
                       it_ekko-spras UNDER text-006, 62 sy-vline,
                                                    "LANGUAGE KEY
                       it_ekko-zterm UNDER text-007, 80 sy-vline.
                                                    "PAYMENT TERMS KEY

  hide : it_ekko-ebeln.
  ENDLOOP.
  WRITE :/ sy-uline(80).

*----------------------------------------------------------------------*
*                To generate the detailed lists                        *
*----------------------------------------------------------------------*

AT LINE-SELECTION.
  CASE sy-lsind.
    WHEN 1.
      SET PF-STATUS '0011'.

*---------To display the data for the secondary list-----------------------*
WINDOW STARTING AT 10 10
       ENDING   AT 90 30.
    format color 5 intensified off.
  LOOP AT it_ekpo where ebeln = it_ekko-ebeln .
    WRITE :/ sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline,
                                                     "PURCHASE ORDER NUMBER
                       it_ekpo-ebelp UNDER text-008, 30 sy-vline,
                                                     "PO ITEM NUMBER
                       it_ekpo-werks UNDER text-009, 45 sy-vline,
                                                     "PLANT
                       it_ekpo-matnr UNDER text-010, 60 sy-vline,
                                                     "MATERIAL NUMBER
                       it_ekpo-matkl UNDER text-011, 80 sy-vline.
                                                     "MATERIAL GROUP
  ENDLOOP.

  WRITE :/ sy-uline(80).

  ENDCASE.

  CASE sy-ucomm.
    WHEN 'EXIT' OR 'CANC' OR 'BACK'.
       LEAVE TO SCREEN 0.
  ENDCASE.

*----------------------------------------------------------------------*
*                    At user-command event                             *
*----------------------------------------------------------------------*

AT USER-COMMAND.
  CASE sy-ucomm.
    WHEN 'SELE' OR 'LIST1'.
      IF sy-lsind = 1.
      SET PF-STATUS '0011'.

*---------To display the data for the secondary list-----------------------*

WINDOW STARTING AT 10 10
       ENDING   AT 90 30.
       format color 5 intensified off.

  LOOP AT it_ekpo where ebeln = it_ekko-ebeln .
    WRITE :/ sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline, "PURCHASE ORDER NUMBER
                       it_ekpo-ebelp UNDER text-008, 30 sy-vline, "PO ITEM NUMBER
                       it_ekpo-werks UNDER text-009, 45 sy-vline, "PLANT
                       it_ekpo-matnr UNDER text-010, 60 sy-vline, "MATERIAL NUMBER
                       it_ekpo-matkl UNDER text-011, 80 sy-vline. "MATERIAL GROUP

  ENDLOOP.

  WRITE :/ sy-uline(80).
  endif.

  ENDCASE.

  CASE sy-ucomm.
    WHEN 'EXIT' OR 'CANC' OR 'BACK'.
       LEAVE TO SCREEN 0.

  ENDCASE.

*----------------------------------------------------------------------*
*                    Top-of-page for basic list                        *
*----------------------------------------------------------------------*

TOP-OF-PAGE.

 format color 3 intensified off.

  WRITE :/ sy-uline(80).
  WRITE :/    sy-vline,
           03 sy-repid,
           60 text-015,
              sy-uname,
           80 sy-vline.
  WRITE :/ sy-vline, 03 sy-datum,
           35 text-012,
           60 text-014,
              sy-pagno,
           80 sy-vline.
  WRITE :/ sy-uline(80).
  WRITE :/ sy-vline, text-002, 18 sy-vline, "PURCHASE ORDER NUMBER
                     text-003, 27 sy-vline, "COMPANY CODE
                     text-004, 38 sy-vline, "PURCHASING DOCUMENT TYPE
                     text-005, 50 sy-vline, "VENDOR
                     text-006, 62 sy-vline, "LANGUAGE KEY
                     text-007, 80 sy-vline. "PAYMENT TERMS KEY
  WRITE :/ sy-uline(80).

*----------------------------------------------------------------------*
*              Top-of-page for secondary list                          *
*----------------------------------------------------------------------*

TOP-OF-PAGE DURING LINE-SELECTION.
format color 2 intensified off.
WINDOW STARTING AT 10 10
       ENDING   AT 90 30.
  WRITE :/ sy-uline(80).
  WRITE :/   sy-vline,
          03 sy-repid,
          60 text-015,
             sy-uname,
          80 sy-vline.

  WRITE :/   sy-vline,
          03 sy-datum,
          35 text-013,
          60 text-014,
             sy-pagno,
          80 sy-vline.

  WRITE :/ sy-uline(80).

  WRITE :/ sy-vline, text-014, 15 sy-vline, "PURCHASE ORDER NUMBER
                     text-008, 30 sy-vline, "PO ITEM NUMBER
                     text-009, 45 sy-vline, "PLANT
                     text-010, 60 sy-vline, "MATERIAL NUMBER
                     text-011, 80 sy-vline. "MATERIAL GROUP

  WRITE :/ sy-uline(80).

*----------------------------------------------------------------------*
*                    End-of-page event                                 *
*----------------------------------------------------------------------*

END-OF-PAGE.
  WRITE :/    sy-vline,
           03 text-016,
              p_limit,
           60 text-014,
              sy-pagno,
           80 sy-vline.
  write:/ sy-uline(80).

INCLUDE Z_INCLUDE_PURCHORDERKKB01.
form form_search_help .

REFRESH it_ebeln.
  CLEAR it_ebeln.
  CLEAR P_ebeln.

  SELECT ebeln FROM ekko INTO TABLE it_ebeln.

  CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
    EXPORTING
      endpos_col   = 21
      endpos_row   = 35
      startpos_col = 12
      startpos_row = 1
      titletext    = text-012

    IMPORTING
      choise       = P_ebeln

    TABLES
      valuetab     = it_ebeln

    EXCEPTIONS
      break_off    = 1
      OTHERS       = 2.

http://www.erpgenie.com/abap/drill_down_reports.htm

Regards

Sudheer

4 REPLIES 4
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
471

Drill down reports are ones that have multiple lists. For example, the program could display a list of sales orders, then if you double click on the sales order number, it would display the line items of the sales order in another list. This is a most basic example

Regards,

Rich Heilman

Read only

Former Member
0 Likes
472

Hi,

With drilldown reporting, SAP provides you with an interactive information system to let you evaluate the data collected in your application. This information system is capable of analyzing all the data according to any of the characteristics that describe the data. You can also use any key figures you wish to categorize your data. You can display a number of objects for a given key figure, or a number of key figures for a given object. In addition, the system lets you carry out any number of variance analyses (such as plan/actual comparisons, fiscal year comparisons, comparisons of different objects, and so on).

<b>Example Code For Drill Down Report</b>

REPORT  zmm_rept_purchorderkkb01 LINE-SIZE 80
                                 LINE-COUNT 65(3)
                                 MESSAGE-ID z_msg_class
                                 NO STANDARD PAGE HEADING.

*------------------DECLARING THE STANDARD TABLES---------------------*
TABLES : ekko, "PURCHASE ORDER : HEADER
         ekpo. "PURCHASE ORDER : ITEM

*------------------DECLARING THE INTERNAL TABLE----------------------*
DATA  : BEGIN OF it_ekko OCCURS 2,
          ebeln LIKE ekko-ebeln, "PURCHASE ORDER NUMBER
          bukrs LIKE ekko-bukrs, "COMPANY CODE
          bsart LIKE ekko-bsart, "PURCHASING DOCUMENT TYPE
          lifnr LIKE ekko-lifnr, "VENDOR
          spras LIKE ekko-spras, "LANGUAGE KEY
          zterm LIKE ekko-zterm, "PAYMENT TERMS KEY
        end of it_ekko.

DATA  : BEGIN OF it_ekpo OCCURS 2,
          ebeln LIKE ekpo-ebeln, "PURCHASE ORDER NUMBER
          ebelp LIKE ekpo-ebelp, "PURCHASE ORDER NUMBER
          werks LIKE ekpo-werks, "PLANT
          matnr LIKE ekpo-matnr, "MATERIAL NUMBER
          matkl LIKE ekpo-matkl, "MATERIAL GROUP
        END OF it_ekpo.

DATA: it_ebeln LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.

*DATA: it_ebeln_high LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.

DATA: p_ebeln       TYPE i.

*------------------Declaring the selection screen--------------------*

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_ebeln FOR ekko-ebeln.

PARAMETER      : p_limit TYPE i.

SELECTION-SCREEN END OF BLOCK blk1.


*INCLUDE z_incl_purorderkkb01_sub_f01.


*--------------------------------------------------------------------*
*  Validation for  number of records to be printed                   *
*--------------------------------------------------------------------*

*AT SELECTION-SCREEN ON p_limit.
*  IF p_limit IS INITIAL.
*    MESSAGE e011.
*  ENDIF.


*  IF p_limit GT sy-linct.
*    MESSAGE e010.
*  ENDIF.


*----------------------------------------------------------------------*
*        Search help for purchase document number (s_ebeln-low)        *
*----------------------------------------------------------------------*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-low.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = s_ebeln-low
    IMPORTING
      output = s_ebeln-low.

  perform form_search_help.

  IF sy-subrc <> 0.
    CASE sy-subrc.
      WHEN 2.
        LEAVE TO SCREEN 1000.
    ENDCASE.
  ELSE.
    LOOP AT it_ebeln.
      IF sy-tabix = p_ebeln.
        s_ebeln-low = it_ebeln.
        EXIT.
      ENDIF.
    ENDLOOP.
  ENDIF.

*----------------------------------------------------------------------*
*        Search help for purchase document number (s_ebeln-high)       *
*----------------------------------------------------------------------*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-high.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = s_ebeln-high
    IMPORTING
      output = s_ebeln-high.

  perform form_search_help.

  IF sy-subrc <> 0.
    CASE sy-subrc.
      WHEN 2.
        LEAVE TO SCREEN 1000.
    ENDCASE.
  ELSE.
    LOOP AT it_ebeln.
      IF sy-tabix = p_ebeln.
        s_ebeln-high = it_ebeln.
        EXIT.
      ENDIF.
    ENDLOOP.
  ENDIF.

*----------------------------------------------------------------------*
*                   Start-of-selection event                           *
*----------------------------------------------------------------------*

START-OF-SELECTION.

*----------------------To attach a user interface----------------------*
SET PF-STATUS '0010'.

*---------To fetch the data for the basic list-------------------------*
    SELECT ebeln                   "PURCHASE ORDER NUMBER
           bukrs                   "COMPANY CODE
           bsart                   "PURCHASING DOCUMENT TYPE
           lifnr                   "VENDOR
           spras                   "LANGUAGE KEY
           zterm                   "PAYMENT TERMS KEY
     up to p_limit rows
     into table it_ekko from ekko
     where ebeln in s_ebeln.

     REFRESH it_ekpo.

*---------To fetch the data for the secondary list-----------------------*

if it_ekpo is initial.

    SELECT ebeln "PURCHASE ORDER NUMBER
           ebelp "PURCHASING DOCUMENT TYPE
           werks "PLANT
           matnr "MATERIAL NUMBER
           matkl "MATERIAL GROUP
    FROM ekpo  INTO TABLE it_ekpo for all entries in it_ekko
    WHERE ebeln EQ it_ekko-ebeln.

endif.

*----------------------------------------------------------------------*
*                   End-of-selection event                             *
*----------------------------------------------------------------------*

END-OF-SELECTION.


*---------To display the data for the basic list-----------------------*
   format color 4 intensified off.
  LOOP AT it_ekko.
    WRITE :/ sy-vline, it_ekko-ebeln UNDER text-002, 18 sy-vline,
                                                    "PURCHASE ORDER NUMBER
                       it_ekko-bukrs UNDER text-003, 27 sy-vline,
                                                    "COMPANY CODE
                       it_ekko-bsart UNDER text-004, 38 sy-vline,
                                                    "PURCHASING DOCUMENT TYPE
                       it_ekko-lifnr UNDER text-005, 50 sy-vline,
                                                    "VENDOR
                       it_ekko-spras UNDER text-006, 62 sy-vline,
                                                    "LANGUAGE KEY
                       it_ekko-zterm UNDER text-007, 80 sy-vline.
                                                    "PAYMENT TERMS KEY

  hide : it_ekko-ebeln.
  ENDLOOP.
  WRITE :/ sy-uline(80).

*----------------------------------------------------------------------*
*                To generate the detailed lists                        *
*----------------------------------------------------------------------*

AT LINE-SELECTION.
  CASE sy-lsind.
    WHEN 1.
      SET PF-STATUS '0011'.

*---------To display the data for the secondary list-----------------------*
WINDOW STARTING AT 10 10
       ENDING   AT 90 30.
    format color 5 intensified off.
  LOOP AT it_ekpo where ebeln = it_ekko-ebeln .
    WRITE :/ sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline,
                                                     "PURCHASE ORDER NUMBER
                       it_ekpo-ebelp UNDER text-008, 30 sy-vline,
                                                     "PO ITEM NUMBER
                       it_ekpo-werks UNDER text-009, 45 sy-vline,
                                                     "PLANT
                       it_ekpo-matnr UNDER text-010, 60 sy-vline,
                                                     "MATERIAL NUMBER
                       it_ekpo-matkl UNDER text-011, 80 sy-vline.
                                                     "MATERIAL GROUP
  ENDLOOP.

  WRITE :/ sy-uline(80).

  ENDCASE.

  CASE sy-ucomm.
    WHEN 'EXIT' OR 'CANC' OR 'BACK'.
       LEAVE TO SCREEN 0.
  ENDCASE.

*----------------------------------------------------------------------*
*                    At user-command event                             *
*----------------------------------------------------------------------*

AT USER-COMMAND.
  CASE sy-ucomm.
    WHEN 'SELE' OR 'LIST1'.
      IF sy-lsind = 1.
      SET PF-STATUS '0011'.

*---------To display the data for the secondary list-----------------------*

WINDOW STARTING AT 10 10
       ENDING   AT 90 30.
       format color 5 intensified off.

  LOOP AT it_ekpo where ebeln = it_ekko-ebeln .
    WRITE :/ sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline, "PURCHASE ORDER NUMBER
                       it_ekpo-ebelp UNDER text-008, 30 sy-vline, "PO ITEM NUMBER
                       it_ekpo-werks UNDER text-009, 45 sy-vline, "PLANT
                       it_ekpo-matnr UNDER text-010, 60 sy-vline, "MATERIAL NUMBER
                       it_ekpo-matkl UNDER text-011, 80 sy-vline. "MATERIAL GROUP

  ENDLOOP.

  WRITE :/ sy-uline(80).
  endif.

  ENDCASE.

  CASE sy-ucomm.
    WHEN 'EXIT' OR 'CANC' OR 'BACK'.
       LEAVE TO SCREEN 0.

  ENDCASE.

*----------------------------------------------------------------------*
*                    Top-of-page for basic list                        *
*----------------------------------------------------------------------*

TOP-OF-PAGE.

 format color 3 intensified off.

  WRITE :/ sy-uline(80).
  WRITE :/    sy-vline,
           03 sy-repid,
           60 text-015,
              sy-uname,
           80 sy-vline.
  WRITE :/ sy-vline, 03 sy-datum,
           35 text-012,
           60 text-014,
              sy-pagno,
           80 sy-vline.
  WRITE :/ sy-uline(80).
  WRITE :/ sy-vline, text-002, 18 sy-vline, "PURCHASE ORDER NUMBER
                     text-003, 27 sy-vline, "COMPANY CODE
                     text-004, 38 sy-vline, "PURCHASING DOCUMENT TYPE
                     text-005, 50 sy-vline, "VENDOR
                     text-006, 62 sy-vline, "LANGUAGE KEY
                     text-007, 80 sy-vline. "PAYMENT TERMS KEY
  WRITE :/ sy-uline(80).

*----------------------------------------------------------------------*
*              Top-of-page for secondary list                          *
*----------------------------------------------------------------------*

TOP-OF-PAGE DURING LINE-SELECTION.
format color 2 intensified off.
WINDOW STARTING AT 10 10
       ENDING   AT 90 30.
  WRITE :/ sy-uline(80).
  WRITE :/   sy-vline,
          03 sy-repid,
          60 text-015,
             sy-uname,
          80 sy-vline.

  WRITE :/   sy-vline,
          03 sy-datum,
          35 text-013,
          60 text-014,
             sy-pagno,
          80 sy-vline.

  WRITE :/ sy-uline(80).

  WRITE :/ sy-vline, text-014, 15 sy-vline, "PURCHASE ORDER NUMBER
                     text-008, 30 sy-vline, "PO ITEM NUMBER
                     text-009, 45 sy-vline, "PLANT
                     text-010, 60 sy-vline, "MATERIAL NUMBER
                     text-011, 80 sy-vline. "MATERIAL GROUP

  WRITE :/ sy-uline(80).

*----------------------------------------------------------------------*
*                    End-of-page event                                 *
*----------------------------------------------------------------------*

END-OF-PAGE.
  WRITE :/    sy-vline,
           03 text-016,
              p_limit,
           60 text-014,
              sy-pagno,
           80 sy-vline.
  write:/ sy-uline(80).

INCLUDE Z_INCLUDE_PURCHORDERKKB01.
form form_search_help .

REFRESH it_ebeln.
  CLEAR it_ebeln.
  CLEAR P_ebeln.

  SELECT ebeln FROM ekko INTO TABLE it_ebeln.

  CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
    EXPORTING
      endpos_col   = 21
      endpos_row   = 35
      startpos_col = 12
      startpos_row = 1
      titletext    = text-012

    IMPORTING
      choise       = P_ebeln

    TABLES
      valuetab     = it_ebeln

    EXCEPTIONS
      break_off    = 1
      OTHERS       = 2.

http://www.erpgenie.com/abap/drill_down_reports.htm

Regards

Sudheer

Read only

0 Likes
471

One more example you can check out the link:

http://www.erpgenie.com/abap/drill_down_reports.htm

Read only

Former Member
0 Likes
471

Hi,

Drill down report is the one that displays multiple level report...First the header information will be displayed..If you double click on the row it will display the details.

Check this example using ALV..

TYPE-POOLS: slis.

DATA: BEGIN OF itab1 OCCURS 0,

vbeln TYPE vbeln,

bstnk TYPE vbak-bstnk,

erdat TYPE vbak-erdat,

kunnr TYPE vbak-kunnr,

END OF itab1.

DATA: BEGIN OF itab2 OCCURS 0,

vbeln TYPE vbeln,

matnr TYPE vbap-matnr,

netpr TYPE vbap-netpr,

kwmeng TYPE vbap-kwmeng,

END OF itab2.

DATA: t_fieldcatalog1 TYPE slis_t_fieldcat_alv.

DATA: t_fieldcatalog2 TYPE slis_t_fieldcat_alv.

DATA: v_repid TYPE syrepid.

v_repid = sy-repid.

  • Get the fieldcatalog1

PERFORM get_fieldcat1.

  • Get the fieldcatalog2

PERFORM get_fieldcat2.

SELECT vbeln bstnk erdat kunnr UP TO 10 ROWS

INTO TABLE itab1

FROM vbak.

IF NOT itab1[] IS INITIAL.

SELECT vbeln matnr netpr kwmeng UP TO 10 ROWS

INTO TABLE itab2

FROM vbap

FOR ALL ENTRIES IN itab1

WHERE vbeln = itab1-vbeln.

ENDIF.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = v_repid

i_callback_user_command = 'DISPLAY_DETAIL'

it_fieldcat = t_fieldcatalog1

TABLES

t_outtab = itab1.

----


  • FORM display_detail *

----


  • ........ *

----


  • --> UCOMM *

  • --> SELFIELD *

----


FORM display_detail USING ucomm LIKE sy-ucomm

selfield TYPE slis_selfield.

DATA: itab2_temp LIKE itab2 OCCURS 0 WITH HEADER LINE.

IF ucomm = '&IC1'.

READ TABLE itab1 INDEX selfield-tabindex.

IF sy-subrc = 0.

LOOP AT itab2 WHERE vbeln = itab1-vbeln.

MOVE itab2 TO itab2_temp.

APPEND itab2_temp.

ENDLOOP.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = v_repid

it_fieldcat = t_fieldcatalog2

TABLES

t_outtab = itab2_temp.

ENDIF.

ENDIF.

ENDFORM.

----


  • FORM GET_FIELDCAT1 *

----


  • ........ *

----


FORM get_fieldcat1.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'VBELN'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'VBELN'.

s_fieldcatalog-hotspot = 'X'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'BSTNK'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'BSTNK'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '3'.

s_fieldcatalog-fieldname = 'ERDAT'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'ERDAT'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '4'.

s_fieldcatalog-fieldname = 'KUNNR'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'KUNNR'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

ENDFORM.

*

----


  • FORM GET_FIELDCAT2 *

----


  • ........ *

----


FORM get_fieldcat2.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'VBELN'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'VBELN'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'MATNR'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'MATNR'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '3'.

s_fieldcatalog-fieldname = 'NETPR'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'NETPR'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '4'.

s_fieldcatalog-fieldname = 'KWMENG'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'KWMENG'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

ENDFORM.

Thanks,

Naren