2007 May 19 9:49 AM
Hi,
Please help me on this.
I haveto write an interactive report where the first screen would be an ALV list, on clicking the line item I need to display the detailed report in normal list. Also, the data displayed in the normal list is almost same as that displayed on ALV.I have created both types of output but dont know how to link them as interactive. any suggestions or help?
2007 May 21 2:41 PM
hi,
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.
in the form HANDLE_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.
FORM INTERACTIVE_REPORT .
leave to list-processing.
loop at it_vbrp.
write:/ it_vbrp-vbeln.
write:/ it_vbrp-posnr.
write:/ it_vbrp-fkimg.
endloop.
regards,
priya.
Message was edited by:
Priya Parvathi Jammalamadaka
hi,
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.
in the form HANDLE_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.
FORM INTERACTIVE_REPORT .
leave to list-processing.
loop at it_vbrp.
write:/ it_vbrp-vbeln.
write:/ it_vbrp-posnr.
write:/ it_vbrp-fkimg.
endloop.
regards,
priya.
Message was edited by:
Priya Parvathi Jammalamadaka
2007 May 19 3:38 PM
Dear Ashu,
You would need to populate the event.
Visit the following link:
http://www.sap-img.com/abap/an-interactive-alv-report.htm
Refer to standard program BCALV_TEST_GRID_EVENTS for interactive events:
before_user_command, after_user_command, double_click,
hotspot_click, button_click, onf1
onf4, menu_button, toolbar, context_menu_request, ondrag, ondrop, ondropcomplete,
ondropgetflavor, subtotal_text, data_changed,
data_changed_finished, after_refresh, delayed_callback, delayed_changed_sel_callback, top_of_page, end_of_list, print_top_of_page, print_end_of_page, print_top_of_list.
Regards,
Naveen.
2007 May 21 2:30 PM
hi,
this is an ALV interactive report .in this you can find logic for interactive report.make use of it.
instead of alv make use of normal report for secondary list.
REPORT ZSR_ALV_INTERACTIVE.
TABLES : LFA1,EKKO,EKPO.
SELECT-OPTIONS : VENDOR FOR LFA1-LIFNR.
DATA : BEGIN OF ITAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
END OF ITAB.
DATA : BEGIN OF JTAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
END OF JTAB.
DATA : BEGIN OF KTAB OCCURS 0,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
END OF KTAB.
TYPE-POOLS : SLIS.
DATA : REPID LIKE SY-REPID.
DATA :LFA1_B TYPE SLIS_T_FIELDCAT_ALV,
LFA1_W TYPE SLIS_FIELDCAT_ALV,
EKKO_B TYPE SLIS_T_FIELDCAT_ALV,
EKKO_W TYPE SLIS_FIELDCAT_ALV,
EKPO_B TYPE SLIS_T_FIELDCAT_ALV,
EKPO_W TYPE SLIS_FIELDCAT_ALV,
EVENTS_B TYPE SLIS_T_EVENT,
EVENTS_W TYPE SLIS_ALV_EVENT.
PERFORM GET_VAL.
REPID = SY-REPID.
SELECT LIFNR NAME1 FROM LFA1 INTO TABLE ITAB WHERE LIFNR IN VENDOR.
*perform val USING USER_COMMAND sel.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IT_FIELDCAT = LFA1_B
IT_EVENTS = EVENTS_B
TABLES
T_OUTTAB = ITAB.
&----
*& Form GET_VAL
&----
text this is to put column headings
----
FORM GET_VAL.
LFA1_W-FIELDNAME = 'LIFNR'.
LFA1_W-REF_TABNAME = 'LFA1'.
LFA1_W-REF_FIELDNAME = 'LIFNR'.
APPEND LFA1_W TO LFA1_B.
LFA1_W-FIELDNAME = 'NAME1'.
LFA1_W-REF_TABNAME = 'LFA1'.
LFA1_W-REF_FIELDNAME = 'NAME1'.
APPEND LFA1_W TO LFA1_B.
EKKO_W-FIELDNAME = 'EBELN'.
EKKO_W-REF_TABNAME = 'EKKO'.
EKKO_W-REF_FIELDNAME = 'EBELN'.
APPEND EKKO_W TO EKKO_B.
EKKO_W-FIELDNAME = 'AEDAT'.
EKKO_W-REF_TABNAME = 'EKKO'.
EKKO_W-REF_FIELDNAME = 'AEDAT'.
APPEND EKKO_W TO EKKO_B.
EKPO_W-FIELDNAME = 'EBELP'.
EKPO_W-REF_TABNAME = 'EKPO'.
EKPO_W-REF_FIELDNAME = 'EBELP'.
APPEND EKPO_W TO EKPO_B.
EKPO_W-FIELDNAME = 'MATNR'.
EKPO_W-REF_TABNAME = 'EKPO'.
EKPO_W-REF_FIELDNAME = 'MATNR'.
APPEND EKPO_W TO EKPO_B.
EVENTS_W-NAME = 'USER_COMMAND'.
EVENTS_W-FORM = 'VAL'.
APPEND EVENTS_W TO EVENTS_B.
ENDFORM. "GET_VAL
&----
*& Form VAL
&----
text
----
-->USER_COMMANtext
-->SEL text for retrieving data
----
FORM VAL USING USER_COMMAND LIKE SY-UCOMM SEL TYPE SLIS_SELFIELD.
DATA : VEN(10) TYPE N,
PO(10) TYPE N.
DATA : MAT(10) TYPE C.
IF SEL-FIELDNAME = 'LIFNR'.
VEN = SEL-VALUE.
SELECT EBELN AEDAT FROM EKKO INTO TABLE JTAB WHERE LIFNR = VEN.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
I_STRUCTURE_NAME = EKKO_B
IT_FIELDCAT = EKKO_B
IT_EVENTS = EVENTS_B
TABLES
T_OUTTAB = JTAB.
ENDIF.
IF SEL-FIELDNAME = 'EBELN'.
PO = SEL-VALUE.
SELECT EBELP MATNR FROM EKPO INTO TABLE KTAB WHERE EBELN = PO.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE = 'ITEM DETAILS'
I_TABNAME = 'EKPO'
IT_FIELDCAT = EKPO_B
I_CALLBACK_PROGRAM = REPID
IMPORTING
ES_SELFIELD = SEL
TABLES
T_OUTTAB = KTAB.
ENDIF.
logic to select a record
IF SEL-FIELDNAME = 'MATNR'.
MAT = SEL-VALUE.
SET PARAMETER ID 'MAT' FIELD MAT.
CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM. "VAL
2007 May 21 2:41 PM
hi,
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.
in the form HANDLE_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.
FORM INTERACTIVE_REPORT .
leave to list-processing.
loop at it_vbrp.
write:/ it_vbrp-vbeln.
write:/ it_vbrp-posnr.
write:/ it_vbrp-fkimg.
endloop.
regards,
priya.
Message was edited by:
Priya Parvathi Jammalamadaka
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |