‎2007 Mar 22 12:42 PM
Hi All,
I want to know about ALV interactive. Please provide detailed information.
Thanks in advance.
Ranga
‎2007 Mar 22 12:44 PM
‎2007 Mar 22 12:44 PM
‎2007 Mar 22 12:44 PM
http://www.sap-img.com/abap/an-interactive-alv-report.htm
ALV Interactive report allows you do drill down by doublc clicking a section of the grid.
Regards,
Rich Heilman
‎2007 Mar 22 12:49 PM
Hi Ranga,
Here i am sending Syntax for ALV Interactive report and example program also you can go through this easyly u can understand.
If your problem solve please reward points.
<b>Syntax :
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
The parameter r_ucomm contains the function code.
The structure rs_selfield has the details about the current cursor position</b>.
REPORT ZDEL_ALV1 NO STANDARD PAGE HEADING LINE-SIZE 255 LINE-COUNT 60.
**********************
*TABLE DECLARATION
**********************
TABLES : LIKP, "Delivery Header Data
LIPS, "Delivery item Data
VBUP. "sales document item status
TYPE-POOLS : SLIS.
************************
*SRUCTURE DECLARATION
************************
*****************************
*THIS TABLE FOR HEADER DETAILS
*****************************
TYPES : BEGIN OF T_LIKP ,
VBELN LIKE LIKP-VBELN, "Delivery number
KOSTA LIKE VBUP-KOSTA,
KUNNR LIKE LIKP-KUNNR, "Customer number
WADAT LIKE LIKP-WADAT, "Planned goods movement date
ERNAM LIKE LIKP-ERNAM, "Name of person
VKORG LIKE LIKP-VKORG, "Sales organization
LFART LIKE LIKP-LFART, "DELIVERY TYPE
NTGEW LIKE LIKP-NTGEW, "NET WEIGHT
END OF T_LIKP.
***************************
*THIS TABLE FOR ITEM DETAILS
*************************
TYPES : BEGIN OF T_LIPS ,
VBELN LIKE LIPS-VBELN, "Delivery number
POSNR LIKE LIPS-POSNR,
MATNR LIKE LIPS-MATNR, "Material number
LFIMG LIKE LIPS-LFIMG, "Actual quantity delivered
NTGEW LIKE LIPS-NTGEW,
EXBWR LIKE LIPS-EXBWR, "Externally entered posting amount
ARKTX LIKE LIPS-ARKTX, "Short text SO Item
END OF T_LIPS.
**********************
*THIS IS FOR FINAL OUTPUT
*************************
TYPES : BEGIN OF T_VBUP ,
VBELN LIKE LIKP-VBELN, "Delivery number
KOSTA LIKE VBUP-KOSTA, "Picking status/Putaway status
POSNR LIKE VBUP-POSNR,
MATNR LIKE LIPS-MATNR, "Material number
LFIMG LIKE LIPS-LFIMG, "Actual quantity delivered
NTGEW LIKE LIPS-NTGEW,
EXBWR LIKE LIPS-EXBWR, "Externally entered posting amount
ARKTX LIKE LIPS-ARKTX, "SHORT text SO Item
DESCRIPTION(20), "for display text
END OF T_VBUP.
*****************
*INTERNAL TABLES
*****************
DATA : I_LIKP TYPE STANDARD TABLE OF T_LIKP.
DATA : T_LIPS TYPE STANDARD TABLE OF T_LIPS.
DATA : I_VBUP TYPE STANDARD TABLE OF T_VBUP.
DATA : REPID LIKE SY-REPID.
DATA : DELIVAR1(10) TYPE C.
*****************
*WORK AREA
*****************
DATA : WA_LIKP TYPE T_LIKP.
DATA : WA_LIPS TYPE T_LIPS.
DATA : WA_VBUP TYPE T_VBUP.
DATA: I_VBUP1 LIKE WA_VBUP OCCURS 0 WITH HEADER LINE.
************************
*SLIS TABLE DECLARATIONS
************************
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
I_EVENTS TYPE SLIS_T_EVENT,
W_EVENTS TYPE SLIS_ALV_EVENT,
I_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
I_LAYOUT TYPE SLIS_LAYOUT_ALV.
***************************
*SELECTING RANGE OF VALUES
***************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_VBELN FOR LIKP-VBELN,
S_KUNNR FOR LIKP-KUNNR,
S_WADAT FOR LIKP-WADAT.
SELECTION-SCREEN END OF BLOCK B1 .
********************************************************
*CHOOSE ONE CHECK BOX FOR DISPLAYING THE DELIVARY STATUS
********************************************************
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS : CB_KOSTC AS CHECKBOX DEFAULT 'X',
CB_KOSTA AS CHECKBOX,
CB_KOSTB AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK B2.
***********************
*INTIALIZATION CHECK
************************
INITIALIZATION.
REPID = SY-REPID.
************************
*START-OF-SELECTION
************************
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM GET_FIELD.
PERFORM GET_EVENTS.
PERFORM DISPLAY.
***********************
*END-OF-SELECTION
************************
END-OF-SELECTION.
&----
*& Form RUCOMM
&----
This form getting details from lips table for displaying
the item details and all select statements for delivary status
----
-->R_UCOMM text
-->RS_SELFIELDtext
----
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE
SLIS_SELFIELD.
DATA: DELIVAR1(10) TYPE C.
IF RS_SELFIELD-FIELDNAME = 'VBELN'.
DELIVAR1 = RS_SELFIELD-VALUE.
ENDIF.
IF CB_KOSTC = 'X'.
SELECT VBELN KOSTA FROM VBUP
INTO TABLE I_VBUP
WHERE VBELN IN DELIVAR
AND KOSTA = 'C'.
SELECT VBELN MATNR LFIMG EXBWR INTO TABLE I_LIPS FROM LIPS
WHERE VBELN EQ DELIVAR1.
REFRESH I_VBUP1[].
CLEAR I_VBUP1.
SELECT AVBELN AKOSTA BPOSNR BMATNR BLFIMG BNTGEW B~EXBWR
B~ARKTX
INTO TABLE I_VBUP
FROM VBUP AS A INNER JOIN LIPS AS B
ON AVBELN = BVBELN
WHERE A~VBELN EQ DELIVAR1
AND KOSTA = 'C'.
ELSEIF CB_KOSTA = 'X'.
SELECT VBELN KOSTA FROM VBUP
INTO TABLE I_VBUP
WHERE VBELN IN DELIVAR
AND KOSTA = 'A'.
SELECT AVBELN AKOSTA BPOSNR BMATNR BLFIMG BNTGEW B~EXBWR
B~ARKTX
INTO TABLE I_VBUP
FROM VBUP AS A INNER JOIN LIPS AS B
ON AVBELN = BVBELN
WHERE A~VBELN EQ DELIVAR1
AND KOSTA = 'A'.
ELSEIF CB_KOSTB = 'X'.
SELECT VBELN KOSTA FROM VBUP
INTO TABLE I_VBUP
WHERE VBELN IN DELIVAR
AND KOSTA = 'B'.
SELECT AVBELN AKOSTA BPOSNR BMATNR BLFIMG BNTGEW B~EXBWR
B~ARKTX
INTO TABLE I_VBUP
FROM VBUP AS A INNER JOIN LIPS AS B
ON AVBELN = BVBELN
WHERE A~VBELN EQ DELIVAR1
AND KOSTA = 'B'.
ENDIF.
CLEAR I_VBUP1.
LOOP AT I_VBUP INTO WA_VBUP.
I_VBUP1-VBELN = WA_VBUP-VBELN.
I_VBUP1-KOSTA = WA_VBUP-KOSTA.
IF WA_VBUP-KOSTA = 'C'.
I_VBUP1-DESCRIPTION = 'COMPLETELY PROCESSED'.
ELSEIF WA_VBUP-KOSTA = 'B'.
I_VBUP1-DESCRIPTION = 'PARTIALLY PROCESSED'.
ELSEIF WA_VBUP-KOSTA = 'A'.
I_VBUP1-DESCRIPTION = 'NOT YET PROCESSED'.
ENDIF.
I_VBUP1-POSNR = WA_VBUP-POSNR.
I_VBUP1-MATNR = WA_VBUP-MATNR.
I_VBUP1-LFIMG = WA_VBUP-LFIMG.
I_VBUP1-NTGEW = WA_VBUP-NTGEW.
I_VBUP1-EXBWR = WA_VBUP-EXBWR.
I_VBUP1-ARKTX = WA_VBUP-ARKTX.
APPEND I_VBUP1 .
ENDLOOP.
sort i_vbup1 by vbeln matnr lfimg.
delete adjacent duplicates from i_vbup1 comparing vbeln matnr lfimg.
SELECT VBELN MATNR LFIMG EXBWR INTO TABLE I_LIPS FROM LIPS
WHERE VBELN EQ DELIVAR1.
*******************************************************
*This function module for displaying the item details
*******************************************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IT_FIELDCAT = I_FIELDCAT1[]
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND1'
IT_EVENTS = I_EVENTS
TABLES
t_outtab = I_VBUP1
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.
CLEAR I_VBUP1.
ENDFORM. "RUCOMM
&----
*& Form USER_COMMAND1
&----
text
----
-->R_UCOMM1 text
-->RS_SELFIELDtext
----
FORM USER_COMMAND1 USING R_UCOMM1 LIKE SY-UCOMM RS_SELFIELD1 TYPE
SLIS_SELFIELD.
DATA: DELIV(10) TYPE C.
IF RS_SELFIELD1 = 'VBELN'.
DELIV = RS_SELFIELD1-VALUE.
ENDIF.
SET PARAMETER ID 'VL' FIELD DELIVAR1.
CALL TRANSACTION 'VL03' AND SKIP FIRST SCREEN.
ENDFORM. "USER_COMMAND1
&----
*& Form GET_DATA
&----
This form for getting the data from likp table
----
--> p1 text
<-- p2 text
----
FORM GET_DATA .
SELECT VBELN KUNNR WADAT FROM LIKP INTO TABLE I_LIKP
WHERE VBELN IN S_VBELN
AND KUNNR IN S_KUNNR
AND WADAT IN S_WADAT.
REFRESH I_LIKP[].
CLEAR I_LIKP.
IF CB_KOSTC = 'X' AND CB_KOSTA = ' ' AND CB_KOSTB = ''.
SELECT AVBELN AKOSTA BKUNNR BWADAT BERNAM BVKORG BLFART BNTGEW
INTO TABLE I_LIKP
FROM VBUP AS A INNER JOIN LIKP AS B
ON AVBELN = BVBELN
WHERE
B~KUNNR IN S_KUNNR
AND B~VBELN IN S_VBELN
AND B~WADAT IN S_WADAT
AND A~KOSTA = 'C'.
ELSEIF CB_KOSTA = 'X' AND CB_KOSTB = ' ' AND CB_KOSTC = ''.
SELECT AVBELN AKOSTA BKUNNR BWADAT BERNAM BVKORG BLFART BNTGEW
INTO TABLE I_LIKP
FROM VBUP AS A INNER JOIN LIKP AS B
ON AVBELN = BVBELN
WHERE
B~KUNNR IN S_KUNNR
AND B~VBELN IN S_VBELN
AND B~WADAT IN S_WADAT
AND A~KOSTA = 'A'.
ELSEIF CB_KOSTB = 'X' AND CB_KOSTA = '' AND CB_KOSTC = ''.
SELECT AVBELN AKOSTA BKUNNR BWADAT BERNAM BVKORG BLFART BNTGEW
INTO TABLE I_LIKP
FROM VBUP AS A INNER JOIN LIKP AS B
ON AVBELN = BVBELN
WHERE
B~KUNNR IN S_KUNNR
AND B~VBELN IN S_VBELN
AND B~WADAT IN S_WADAT
AND KOSTA = 'B'.
ELSEIF CB_KOSTC = 'X' AND CB_KOSTA = 'X' AND CB_KOSTB = 'X'.
SELECT AVBELN AKOSTA BKUNNR BWADAT BERNAM BVKORG BLFART BNTGEW
INTO TABLE I_LIKP
FROM VBUP AS A INNER JOIN LIKP AS B
ON AVBELN = BVBELN
WHERE
B~KUNNR IN S_KUNNR
AND B~VBELN IN S_VBELN
AND B~WADAT IN S_WADAT
AND KOSTA NE ' '.
ENDIF.
DELETE ADJACENT DUPLICATES FROM I_LIKP.
ENDFORM. " GET_DATA
&----
*& Form GET_FIELD
&----
This form for defining the every fields from likp & lips tables
----
FORM GET_FIELD .
****************************************************
*This fields are retrieving from header table(likp)
*****************************************************
CLEAR I_FIELDCAT.
I_FIELDCAT-FIELDNAME = 'VBELN'.
I_FIELDCAT-SELTEXT_M = 'SALES ORDER NO'.
APPEND I_FIELDCAT TO I_FIELDCAT.
CLEAR I_FIELDCAT.
I_FIELDCAT-FIELDNAME = 'KUNNR'.
I_FIELDCAT-SELTEXT_M = 'CUSTOMER NO'.
APPEND I_FIELDCAT TO I_FIELDCAT.
CLEAR I_FIELDCAT.
I_FIELDCAT-FIELDNAME = 'WADAT'.
I_FIELDCAT-SELTEXT_M = 'DATE'.
APPEND I_FIELDCAT TO I_FIELDCAT.
CLEAR I_FIELDCAT.
I_FIELDCAT-FIELDNAME = 'ERNAM'.
I_FIELDCAT-SELTEXT_M = 'NAME OF PERSON'.
APPEND I_FIELDCAT TO I_FIELDCAT.
CLEAR I_FIELDCAT.
I_FIELDCAT-FIELDNAME = 'VKORG'.
I_FIELDCAT-SELTEXT_M = 'SALES ORGANIZATION'.
APPEND I_FIELDCAT TO I_FIELDCAT.
CLEAR I_FIELDCAT.
I_FIELDCAT-FIELDNAME = 'LFART'.
I_FIELDCAT-SELTEXT_M = 'DELIVERY TYPE'.
APPEND I_FIELDCAT TO I_FIELDCAT.
CLEAR I_FIELDCAT.
I_FIELDCAT-FIELDNAME = 'NTGEW'.
I_FIELDCAT-SELTEXT_M = 'NET WEIGHT'.
I_FIELDCAT-DO_SUM = 'X'.
APPEND I_FIELDCAT TO I_FIELDCAT.
CLEAR I_FIELDCAT.
****************************************************
*This fields are retrieving from item table(lips)
*****************************************************
CLEAR I_FIELDCAT1.
I_FIELDCAT1-FIELDNAME = 'VBELN'.
I_FIELDCAT1-SELTEXT_M = 'DELIVAR NO'.
APPEND I_FIELDCAT1 TO I_FIELDCAT1.
CLEAR I_FIELDCAT1.
I_FIELDCAT1-FIELDNAME = 'POSNR'.
I_FIELDCAT1-SELTEXT_M = 'DELIVERY ITEM'.
APPEND I_FIELDCAT1 TO I_FIELDCAT1.
CLEAR I_FIELDCAT1.
I_FIELDCAT1-FIELDNAME = 'MATNR'.
I_FIELDCAT1-SELTEXT_M = 'MATERIAL NO'.
APPEND I_FIELDCAT1 TO I_FIELDCAT1.
CLEAR I_FIELDCAT1.
I_FIELDCAT1-FIELDNAME = 'LFIMG'.
I_FIELDCAT1-SELTEXT_M = 'ACTUAL QUANTITY'.
I_FIELDCAT1-DO_SUM = 'X'.
APPEND I_FIELDCAT1 TO I_FIELDCAT1.
CLEAR I_FIELDCAT1.
I_FIELDCAT1-FIELDNAME = 'NTGEW'.
I_FIELDCAT1-SELTEXT_M = 'NET WEIGHT'.
I_FIELDCAT1-DO_SUM = 'X'.
APPEND I_FIELDCAT1 TO I_FIELDCAT1.
CLEAR I_FIELDCAT1.
I_FIELDCAT1-FIELDNAME = 'EXBWR'.
I_FIELDCAT1-SELTEXT_M = 'AMOUNT'.
APPEND I_FIELDCAT1 TO I_FIELDCAT1.
CLEAR I_FIELDCAT1.
I_FIELDCAT1-FIELDNAME = 'ARKTX'.
I_FIELDCAT1-SELTEXT_M = 'SHORT TEXT FOR so ITEM'.
APPEND I_FIELDCAT1 TO I_FIELDCAT1.
CLEAR I_FIELDCAT1.
I_FIELDCAT1-FIELDNAME = 'DESCRIPTION'.
I_FIELDCAT1-SELTEXT_M = 'PICKING STATUS'.
APPEND I_FIELDCAT1 TO I_FIELDCAT1.
CLEAR I_FIELDCAT1.
ENDFORM. " GET_FIELD
&----
*& Form GET_EVENTS
&----
This form defining the events
----
*FORM GET_EVENTS .
*
CLEAR W_EVENTS.
*
W_EVENTS-NAME = 'USER_COMMAND'.
*
W_EVENTS-FORM = 'RUCOMM'.
*
APPEND W_EVENTS TO I_EVENTS.
*
*ENDFORM. " GET_EVENTS
&----
*& Form DISPLAY
&----
This form is going to display header details from likp table
----
FORM DISPLAY .
*******************************************************
*This function module for displaying the header details
*******************************************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = I_FIELDCAT[]
I_SAVE = 'X'
IT_EVENTS = I_EVENTS
TABLES
t_outtab = I_LIKP
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. " DISPLAY
&----
*& Form TOP-OF-PAGE
&----
This form is going to display top-of-page header text
----
FORM TOP-OF-PAGE.
DATA: i_list_comments TYPE slis_t_listheader.
DATA: w_list_comments TYPE slis_listheader.
CLEAR: i_list_comments[].
w_list_comments-typ = 'H'. "H=Header, S=Selection, A=Action
w_list_comments-info = 'DELIVERY ORDER DETAILS'.
APPEND w_list_comments TO i_list_comments.
w_list_comments-typ = 'A'. " H = Header, S = Selection, A = Action
w_list_comments-info = 'Basic list'.
APPEND w_list_comments TO i_list_comments.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo =
it_list_commentary = i_list_comments.
ENDFORM. "TOP-OF-PAGE
&----
*& Form TOP_OF_PAGE
&----
This form is going to display top-of-page item text
----
FORM TOP_OF_PAGE.
DATA: i_list_comments TYPE slis_t_listheader.
DATA: w_list_comments TYPE slis_listheader.
DATA : I_LINE LIKE W_LIST_COMMENTS-INFO.
CONCATENATE 'DELIVERY ITEM DETAILS :' DELIVAR1 INTO I_LINE .
SEPARATED BY SPACE.
CLEAR: i_list_comments[].
w_list_comments-typ = 'H'. "H=Header, S=Selection, A=Action
w_list_comments-info = I_LINE.
APPEND w_list_comments TO i_list_comments.
w_list_comments-typ = 'A'. " H = Header, S = Selection, A = Action
w_list_comments-info = 'Secondary list'.
APPEND w_list_comments TO i_list_comments.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo =
it_list_commentary = i_list_comments.
Regards,
Praveen