‎2007 Mar 08 6:21 PM
‎2007 Mar 08 6:25 PM
Hi,
Interactive ALV report, is one that allows you do double click on a cell and drill into a transaction.
Regards,
Ferry Lianto
‎2007 Mar 08 6:27 PM
Hi,
As the name suggests, the user can Interact with the report. We can have a drill down into the report data. For example when double click on a line you have to display a transaction that has the complete details..
Check this link for a sample program.
http://www.sap-img.com/abap/an-interactive-alv-report.htm
Thanks,
Naren
‎2007 Mar 08 6:39 PM
hi,
check this sample code on interactive alv...
REPORT ZTEST_ALV1.
**TABLES DECLN
TABLES: VBRK,VBRP,T001.
TYPE-POOLS: SLIS.
TYPE-POOLS: ICON.
***DATA DECLN.
DATA: V_VBELN LIKE VBRK-VBELN,
V_MATNR LIKE VBRP-MATNR.
CONSTANTS: C_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'F_USER_COMMAND',
C_PF_STATUS TYPE SLIS_FORMNAME VALUE 'F_SET_PF_STATUS'.
**ALV RELATED TABLES.
*--Field Catalog
DATA: IT_FIELDCAT TYPE STANDARD TABLE OF
SLIS_FIELDCAT_ALV WITH HEADER LINE,
IT_FIELDCAT1 TYPE STANDARD TABLE OF
SLIS_FIELDCAT_ALV WITH HEADER LINE ,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
*--Layout
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
*--Sort
IT_SORT TYPE SLIS_T_SORTINFO_ALV,
WA_SORT TYPE SLIS_SORTINFO_ALV ,
**-Structure for excluding function codes
WA_EXTAB TYPE SLIS_EXTAB,
**-To hold function codes to be excluded in ALV toolbar
IT_EXTAB TYPE SLIS_T_EXTAB.
***INTERNAL TABLE DECLN.
DATA: BEGIN OF IT_VBRK OCCURS 0,
VBELN LIKE VBRK-VBELN,
WAERK LIKE VBRK-WAERK,
VKORG LIKE VBRK-VKORG,
FKDAT LIKE VBRK-FKDAT,
BUKRS LIKE VBRK-BUKRS,
NETWR LIKE VBRK-NETWR,
END OF IT_VBRK.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBRP-VBELN,
POSNR LIKE VBRP-POSNR,
FKIMG LIKE VBRP-FKIMG,
VRKME LIKE VBRP-VRKME,
NETWR LIKE VBRP-NETWR,
MATNR LIKE VBRP-MATNR,
ARKTX LIKE VBRP-ARKTX,
END OF ITAB.
DATA: IT_VBRP LIKE ITAB OCCURS 0 WITH HEADER LINE.
***selection screen.
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN,
S_FKDAT FOR VBRK-FKDAT OBLIGATORY,
S_MATNR FOR VBRP-MATNR.
SELECTION-SCREEN: END OF BLOCK B1.
**INITIALIZATION.
INITIALIZATION.
S_FKDAT-LOW = SY-DATUM - 200.
S_FKDAT-HIGH = SY-DATUM.
APPEND S_FKDAT.
***AT SELECTION-SCREEN.
AT SELECTION-SCREEN.
IF NOT S_VBELN IS INITIAL.
SELECT SINGLE VBELN FROM VBRK
INTO V_VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E001(ZZ2).
ENDIF.
ENDIF.
IF NOT S_MATNR IS INITIAL.
SELECT SINGLE MATNR FROM MARA
INTO V_MATNR
WHERE MATNR IN S_MATNR.
IF SY-SUBRC <> 0.
MESSAGE E001(ZZ2).
ENDIF.
ENDIF.
***START-OF-SELECTION.
START-OF-SELECTION.
PERFORM GET_DATA_VBRK.
PERFORM GET_DATA_VBRP.
***END-OF-SELECTION.
END-OF-SELECTION.
*--Sort the Output Fields
PERFORM SORT_FIELDS.
*--Build Field catalog for the Output fields
PERFORM GET_FIELD_CATALOG.
***MODIFY LAYOUT.
PERFORM MODIFY_LAYOUT.
*--Display ALV output
PERFORM LIST_DISP TABLES IT_VBRK
USING C_USER_COMMAND.
&----
*& Form GET_DATA_VBRK
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA_VBRK.
SELECT VBELN
WAERK
VKORG
FKDAT
BUKRS
NETWR
INTO TABLE IT_VBRK
FROM VBRK
WHERE VBELN IN S_VBELN
AND FKDAT IN S_FKDAT.
ENDFORM. " GET_DATA
&----
*& Form GET_DATA_VBRP
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA_VBRP .
SELECT VBELN
POSNR
FKIMG
VRKME
NETWR
MATNR
ARKTX
FROM VBRP
INTO TABLE IT_VBRP
FOR ALL ENTRIES IN IT_VBRK
WHERE VBELN = IT_VBRK-VBELN.
SELECT VBELN
POSNR
FKIMG
VRKME
NETWR
MATNR
ARKTX
FROM VBRP
INTO TABLE ITAB
FOR ALL ENTRIES IN IT_VBRK
WHERE VBELN = IT_VBRK-VBELN.
ENDFORM. " GET_DATA_VBRP
&----
*& Form GET_FIELD_CATALOG
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_FIELD_CATALOG .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'IT_VBRK'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = IT_FIELDCAT[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
ENDFORM. " GET_FIELD_CATALOG
&----
*& Form SORT_FIELDS
&----
text
----
--> p1 text
<-- p2 text
----
FORM SORT_FIELDS .
CLEAR WA_SORT.
WA_SORT-SPOS = '01'.
WA_SORT-FIELDNAME = 'VBELN' .
WA_SORT-TABNAME = 'IT_VBRK'.
WA_SORT-UP = 'X'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
WA_SORT-SPOS = '02'.
WA_SORT-FIELDNAME = 'POSNR' .
WA_SORT-TABNAME = 'IT_VBRP'.
WA_SORT-UP = 'X'.
APPEND WA_SORT TO IT_SORT.
ENDFORM. " SORT_FIELDS
&----
*& Form MODIFY_LAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM MODIFY_LAYOUT .
WA_LAYOUT-DEFAULT_ITEM = 'X'.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'.
WA_layout-colwidth_optimize = 'X'.
ENDFORM. " MODIFY_LAYOUT
&----
*& Form LIST_DISP
&----
text
----
--> p1 text
<-- p2 text
----
FORM LIST_DISP TABLES P_IT_VBRK
USING P_USER_COMMAND TYPE SLIS_FORMNAME.
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'POPUP'
I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
IT_EXCLUDING = IT_EXTAB[]
TABLES
T_OUTTAB = IT_VBRK
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.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'POPUP'
I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
TABLES
T_OUTTAB = P_IT_VBRK
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM. " LIST_DISP
&----
*& Form POPUP
&----
text
----
-->P_EXTAB text
----
FORM POPUP USING IT_EXTAB TYPE SLIS_T_EXTAB.
*- Pf status
SET PF-STATUS 'POPUP'.
ENDFORM. " POPUP
&----
*& Form F_USER_COMMAND
&----
FORM HANDLE_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
clear it_fieldcat1[].
CLEAR IT_VBRP[].
IF RS_SELFIELD-FIELDNAME = 'VBELN'.
READ TABLE IT_VBRK INDEX RS_SELFIELD-TABINDEX.
LOOP AT ITAB WHERE VBELN = IT_VBRK-VBELN.
MOVE-CORRESPONDING ITAB TO IT_VBRP.
APPEND IT_VBRP.
ENDLOOP.
PERFORM INTERACTIVE_REPORT.
ENDIF.
ENDCASE.
ENDFORM. "HANDLE_USER_COMMAND
&----
*& Form INTERACTIVE_REPORT
&----
text
----
--> p1 text
<-- p2 text
----
FORM INTERACTIVE_REPORT .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = IT_FIELDCAT1[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-SELTEXT_L = 'BILLING DOC'.
WA_FIELDCAT-TABNAME = 'IT_VBRP'.
WA_FIELDCAT-COL_POS = 1.
APPEND WA_FIELDCAT TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT.
*
*
WA_FIELDCAT-FIELDNAME = 'POSNR'.
WA_FIELDCAT-SELTEXT_L = 'ITEM'.
WA_FIELDCAT-TABNAME = 'IT_VBRP'.
WA_FIELDCAT-COL_POS = 2.
APPEND WA_FIELDCAT TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT.
*
WA_FIELDCAT-FIELDNAME = 'FKIMG'.
WA_FIELDCAT-SELTEXT_M = 'INV QTY'.
WA_FIELDCAT-TABNAME = 'IT_VBRP'.
WA_FIELDCAT-COL_POS = 3.
APPEND WA_FIELDCAT TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT.
*
WA_FIELDCAT-FIELDNAME = 'VRKME'.
WA_FIELDCAT-SELTEXT_M = 'SALES UNIT'.
WA_FIELDCAT-TABNAME = 'IT_VBRP'.
WA_FIELDCAT-COL_POS = 4.
APPEND WA_FIELDCAT TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT.
*
WA_FIELDCAT-FIELDNAME = 'NETWR'.
WA_FIELDCAT-SELTEXT_M = 'NET PRICE'.
WA_FIELDCAT-TABNAME = 'IT_VBRP'.
WA_FIELDCAT-DO_SUM = 'X'.
WA_FIELDCAT-COL_POS = 5.
APPEND WA_FIELDCAT TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT.
*
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL'.
WA_FIELDCAT-TABNAME = 'IT_VBRP'.
WA_FIELDCAT-COL_POS = 6.
APPEND WA_FIELDCAT TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT.
*
WA_FIELDCAT-FIELDNAME = 'ARKTX'.
WA_FIELDCAT-SELTEXT_M = 'SALES ORDER'.
WA_FIELDCAT-TABNAME = 'IT_VBRP'.
WA_FIELDCAT-COL_POS = 7.
APPEND WA_FIELDCAT TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT.
*
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT1[]
IT_SORT = IT_SORT
TABLES
T_OUTTAB = IT_VBRP
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
*
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT1[]
TABLES
T_OUTTAB = IT_VBRP
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. " INTERACTIVE_REPORT
do reward if it helps,
priya.
‎2007 Mar 08 6:49 PM
Hai,
This is praveen kumar from bangalore i refered few books but i don't get the solution , plz any body knows send one text to me this is my quary
thanks & regards
praveen s.