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

ABAP REPORTS

Former Member
0 Likes
527

HI ,

How to use drill down reports ,

pls

thank u .

4 REPLIES 4
Read only

former_member194669
Active Contributor
0 Likes
496

Hi Naveen,

Please search this forum there are lot of thread related to this

aRs

Read only

amit_khare
Active Contributor
Read only

p291102
Active Contributor
0 Likes
496

Hi,

Herewith i am sending the sample coding for the drilldown report.

Kindly go through it.

&----


*& Report YMS_DRILLDOWN *

*& *

&----


*& *

*& *

&----


REPORT YMS_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.

Thanks,

Shankar

Read only

p291102
Active Contributor
0 Likes
496

HI,

The Drilldown reports are

The lines of basic list of a drilldown report when clicked, will take the user to the corresponding (standard) object's display.

For eg: Suppose your report's primary component is purchase requisition, (assume you are printing PR details), and the basic list displays details of many PRs.

Eg: when clicked on a particular line of the PR basic list, it takes you to std t-code me53 (display of purchase requisition). This is the 'Drill-down' functionality.

For this, in the at-line selection of your program, as per the above ex: you'll set the parameter ID of PR number BAN (that you can get from Data element) in memory (using set parameter id) and then calling the corresponding transaction (usually skipping initial screen of the std t-code).

Likewise, if it's Material Number (Matnr), you'll be displaying MM03 transaction w.r.t. the line's matnr.

&----


*& Report YMS_DRILLDOWN *

*& *

&----


*& *

*& *

&----


REPORT YMS_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.

endform.

Thanks,

Shankar