03-04-2006 8:18 AM
Hello Friends,
Can anyone give me a sample code of drill down report?
Thanks,
Aakash
03-04-2006 8:24 AM
Hi aakash,
*---- drill down using alv
1. There are some parameters
in the FM which are passed,
and a new FORM has to be written.
2. Just copy paste this code in new program.
3. It will display list of company.
On double-clicking on the alv,
it will again display the clicked company code.
Important code has been marked.
4.
REPORT abc.
TYPE-POOLS : slis.
*----
Data
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE t001.
DATA : END OF itab.
DATA : alvfc TYPE slis_t_fieldcat_alv.
*----
Select Data
SELECT * FROM t001 INTO TABLE itab.
*------- Field Catalogue
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'ITAB'
i_inclname = sy-repid
CHANGING
ct_fieldcat = alvfc
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
*----
Display
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
i_callback_program = sy-repid "<-------Important
i_callback_user_command = 'ITAB_USER_COMMAND' "<------ Important
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
*----
CALL BACK FORM
*----
FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
slis_selfield.
READ TABLE itab INDEX whatrow-tabindex.
WRITE itab-bukrs.
ENDFORM. "ITAB_user_command
regards,
amit m.
03-04-2006 8:25 AM
check out these sample programs.
DEMO_LIST_AT_LINE_SELECTION
DEMO_LIST_AT_PF
DEMO_LIST_AT_USER_COMMAND
DEMO_LIST_INTERACTIVE_1
DEMO_LIST_INTERACTIVE_2
DEMO_LIST_INTERACTIVE_3
DEMO_LIST_INTERACTIVE_4
Regards
Raja
03-04-2006 3:00 PM
HI Aakash,
A simple drill down or interactive report is one which uses one of the three following list events , depending on the function code triggered by the
user.
1. AT PF<nn> ....(obsolete)
2. AT LINE-SELECTION
3. AT USER-COMMAND
The output from any list statements that you write in these event blocks is written to detail lists....
<b>With one ABAP program, you can maintain one basic list and up to 19 detail lists.</b>
TO be very simple..
A simple drill down would be like this..
report zabc.
write : 'List1'.
at line-selection.
write : 'List2'.
on double clicking on 'List1' in report "list2' is displayed..
Samples..
<a href="http://www.sapgenie.com/abap/ireports.htm">Sample1</a>
<a href="http://www.guidancetech.com/people/holland/sap/abap/yusrlock.htm">Sample2</a>
<a href="http://www.planetsap.com/Z_interactive_reporting_1.htm">Sample3</a>
<a href="http://www.planetsap.com/Z_interactive_reporting_2.htm">Sample4</a>
regards
satesh
03-06-2006 5:39 AM
Hi,
1. As per the forum etiquette,
u may pls award points
to helpful answers by clicking the STAR
on the left of that reply.
regards,
amit m.
03-06-2006 5:51 AM
Hi ,
You can create an Interactive report using the events mentioned by Satish.
Satish has rightly pointed out that in ABAP we can maintain 19 LIsts at the maximum.But we can maintain more than that asa well by decreasing the sy-lsind everytime the user clicks on the report other wise there is no point in creating an interactive report as after 20 clicks on the report output the ABAP will give a short dump.
Regards,
Sriranjani Chimakurthy.
03-06-2006 5:53 AM
Hi,
If you are using ALV,
Then go to package SLIS using SE80.
You will find sample programs of all kinds using ALV.
If you are using basic list,
you will have to use different events like AT LINE-SELECTION, AT USER-COMMAND, etc.
Hope this helps..
Regards,
Shashank
03-06-2006 5:54 AM
This is simple interactive Drill down list
REPORT zjmdrill NO STANDARD PAGE HEADING.
TABLES : vbak,
vbap,
vbep.
DATA : BEGIN OF i_vbak OCCURS 0,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
vkorg LIKE vbak-vkorg,
vtweg LIKE vbak-vtweg,
spart LIKE vbak-spart,
END OF i_vbak.
DATA : BEGIN OF i_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
zmeng LIKE vbap-zmeng,
END OF i_vbap.
DATA : BEGIN OF i_vbep OCCURS 0,
vbeln LIKE vbep-vbeln,
posnr LIKE vbep-posnr,
etenr LIKE vbep-etenr,
wmeng LIKE vbep-wmeng,
bddat LIKE vbep-bddat,
banfn LIKE vbep-banfn,
END OF i_vbep.
SELECT-OPTIONS : s_vbeln FOR vbak-vbeln.
Start of Selection
START-OF-SELECTION.
SELECT * INTO CORRESPONDING FIELDS OF TABLE i_vbak
FROM vbak
WHERE vbeln IN s_vbeln.
IF sy-subrc NE 0.
MESSAGE e000(zjm).
ENDIF.
*End-of-Selection
END-OF-SELECTION.
SET PF-STATUS 'ZJMD'.
LOOP AT i_vbak.
FORMAT COLOR 4 INTENSIFIED ON.
WRITE : /5 i_vbak-vbeln, 16 sy-vline, 17 i_vbak-erdat,
28 sy-vline, 29 i_vbak-vkorg , 34 sy-vline, 35 i_vbak-vtweg,
40 sy-vline, 41 i_vbak-spart, 44 sy-vline.
FORMAT RESET.
HIDE i_vbak-vbeln.
ENDLOOP.
AT LINE-SELECTION.
IF sy-lsind EQ 1.
SELECT * INTO CORRESPONDING FIELDS OF TABLE i_vbap
FROM vbap
WHERE vbeln = i_vbak-vbeln.
LOOP AT i_vbap.
FORMAT COLOR 1 INTENSIFIED ON.
WRITE : /5 i_vbap-vbeln, 16 sy-vline, 17 i_vbap-posnr,
24 sy-vline, 24 i_vbap-matnr, 43 sy-vline, 44 i_vbap-zmeng.
FORMAT RESET.
HIDE i_vbap-vbeln.
ENDLOOP.
ENDIF.
IF sy-lsind EQ 2.
SELECT * INTO CORRESPONDING FIELDS OF TABLE i_vbep
FROM vbep
WHERE vbeln = i_vbap-vbeln.
LOOP AT i_vbep.
WRITE : /5 i_vbep-vbeln.
ENDLOOP.
ENDIF.
TOP-OF-PAGE.
FORMAT COLOR 1 INTENSIFIED ON.
WRITE : /5 'Items', 16 sy-vline, 17 'Date',
28 sy-vline, 29 'Org', 34 sy-vline, 35 'Dist',
40 sy-vline, 41 'Div', 44 sy-vline.
FORMAT RESET.
03-06-2006 6:00 AM
HI
here is a sample report
REPORT ZKISHDRILL.
************************************************************************
TABLES: VBAK,VBAP,VBEP.
DATA: BEGIN OF I_VBAK OCCURS 0,
VBELN LIKE VBAK-VBELN,
ERNAM LIKE VBAK-ERNAM,
ERDAT LIKE VBAK-ERDAT,
VKORG LIKE VBAK-VKORG,
VTWEG LIKE VBAK-VTWEG,
SPART LIKE VBAK-SPART,
END OF I_VBAK.
DATA: BEGIN OF I_VBAP OCCURS 0,
VBELN LIKE VBAP-VBELN,
POSNR LIKE VBAP-POSNR,
MATNR LIKE VBAP-MATNR,
KWMENG LIKE VBAP-KWMENG,
END OF I_VBAP.
DATA: BEGIN OF I_VBEP OCCURS 0,
VBELN LIKE VBEP-VBELN,
POSNR LIKE VBEP-POSNR,
ETENR LIKE VBEP-ETENR,
WMENG LIKE VBEP-WMENG,
BDDAT LIKE VBEP-BDDAT,
BANFN LIKE VBEP-BANFN,
END OF I_VBEP.
SELECTION-SCREEN:
BEGIN OF SCREEN 500 AS WINDOW TITLE title,
*
PUSHBUTTON 2(20) RETURN USER-COMMAND BACK,
END OF SCREEN 500.
************************************************************************
SELECT-OPTIONS S_VBELN FOR VBAK-VBELN MATCHCODE OBJECT VMVA OBLIGATORY.
************************************************************************
AT SELECTION-SCREEN.
*IF SY-UCOMM EQ 'BACK'.
*SET USER-COMMAND 'BACK'.
*ENDIF.
SELECT SINGLE * FROM VBAK WHERE VBELN IN S_VBELN.
IF SY-SUBRC NE 0.
MESSAGE E001(ZER).
ENDIF.
************************************************************************
AT LINE-SELECTION.
******************************LEVEL1
IF SY-LSIND EQ 1.
SELECT VBELN POSNR MATNR KWMENG INTO TABLE I_VBAP FROM VBAP WHERE
VBELN = I_VBAK-VBELN.
LOOP AT I_VBAP.
FORMAT COLOR 2 INTENSIFIED ON.
HIDE I_VBAP.
WRITE:/5 SY-VLINE, 6 I_VBAP-VBELN, 20 SY-VLINE, 21 I_VBAP-POSNR, 30
SY-VLINE, 31 I_VBAP-MATNR, 50 SY-VLINE, 51 I_VBAP-KWMENG,
70 SY-VLINE.
AT LAST.
ULINE /5(66).
SUM.
WRITE:/ 'TOTAL QUANTITY :', I_VBAP-KWMENG UNDER I_VBAP-KWMENG.
ENDAT.
ENDLOOP.
ENDIF.
******************************LEVEL 2
IF SY-LSIND EQ 2.
SELECT VBELN POSNR ETENR WMENG BDDAT BANFN INTO TABLE I_VBEP FROM VBEP
WHERE VBELN = I_VBAP-VBELN AND POSNR = I_VBAP-POSNR.
IF SY-SUBRC NE 0.
MESSAGE W003(ZER).
ENDIF.
LOOP AT I_VBEP.
FORMAT COLOR 2 INTENSIFIED ON.
WRITE:/5 SY-VLINE, 6 I_VBEP-VBELN, 20 SY-VLINE, 21 I_VBEP-POSNR,
30 SY-VLINE, 31 I_VBEP-ETENR, 45 SY-VLINE, 46 I_VBEP-WMENG,
60 SY-VLINE, 61 I_VBEP-BDDAT, 72 SY-VLINE, 73 I_VBEP-BANFN,
84 SY-VLINE.
AT LAST.
ULINE /5(80).
SUM.
WRITE:/ 'TOTAL ORDER QUANTITY :', I_VBEP-WMENG UNDER
I_VBEP-WMENG.
ENDAT.
ENDLOOP.
FORMAT RESET.
ENDIF.
IF SY-LSIND GT 2.
MESSAGE W002(ZER).
ENDIF.
************************************************************************
START-OF-SELECTION.
SET PF-STATUS 'ZFUNK'.
SELECT VBELN ERNAM ERDAT VKORG VTWEG
SPART INTO TABLE I_VBAK FROM VBAK WHERE VBELN IN S_VBELN.
************************************************************************
END-OF-SELECTION.
LOOP AT I_VBAK.
FORMAT COLOR 2 INTENSIFIED ON.
WRITE:/5 SY-VLINE, 6 I_VBAK-VBELN, 20 SY-VLINE, 21 I_VBAK-ERNAM, 35
SY-VLINE, 36 I_VBAK-ERDAT, 48 SY-VLINE, 49 I_VBAK-VKORG,
60 SY-VLINE, 61 I_VBAK-VTWEG, 71 SY-VLINE, 72 I_VBAK-SPART,
80 SY-VLINE.
HIDE I_VBAK.
ENDLOOP.
ULINE 5(76).
FORMAT RESET.
************************************************************************
TOP-OF-PAGE.
SKIP.
ULINE 5(76).
FORMAT COLOR 1 INTENSIFIED ON.
WRITE:/5 SY-VLINE,6 'SALES NUM', 20 SY-VLINE, 21 'CREATOR', 35
SY-VLINE, 36 'CRET DATE', 48 SY-VLINE, 49 'SALES ORG',
60 SY-VLINE, 61 'SALES WG', 71 SY-VLINE, 72 'SAL DIV',
80 SY-VLINE.
ULINE /5(76).
FORMAT RESET.
TOP-OF-PAGE DURING LINE-SELECTION.
****************************************LEVEL 1
IF SY-LSIND EQ 1.
SKIP.
ULINE 5(66).
FORMAT COLOR 1 INTENSIFIED ON.
WRITE:/5 SY-VLINE,6 'SALES NUM', 20 SY-VLINE, 21 'LINE ITEM', 30
SY-VLINE, 31 'MATEIRAL NO', 50 SY-VLINE, 51 'SALES QTY', 70
SY-VLINE.
ULINE /5(66).
FORMAT RESET.
ENDIF.
****************************************LEVEL 2
IF SY-LSIND EQ 2.
SKIP.
ULINE 5(80).
FORMAT COLOR 1 INTENSIFIED ON.
WRITE:/5 SY-VLINE, 6 'SALES NO', 20 SY-VLINE, 21 'LINE NO',
30 SY-VLINE, 31 'SCHE LINE', 45 SY-VLINE, 46 'ORD QTY',
60 SY-VLINE, 61 'REQ DATE', 72 SY-VLINE, 73 'PURCH NO',
84 SY-VLINE.
ULINE /5(80).
FORMAT RESET.
ENDIF.
************************************************************************
regards
kishore