‎2009 Jan 10 4:12 AM
Hi experts,
I had developed an ALV report. In that i need to add interactive functionality for vendor number and PO so that they go directly to vendor master transaction and ME23N respectively.
Can any one please suggest me how to work out this.
Thank you,
regards,
vijay
‎2009 Jan 10 4:22 AM
‎2009 Jan 10 4:34 AM
Hi,
ALV Report Links:
http://www.sap-img.com/abap/difference-between-drilldown-report-and-interactive-report.htm
http://www.itcserver.com/blog/2006/06/29/interactive-reports-in-abap/
Reference Code
http://www.sap-img.com/abap/an-interactive-alv-report.htm
Functions on ALV Reports:
1. general info on ALV.
http://www.sapfans.com/forums/viewtopic.php?t=58286
http://www.sapfans.com/forums/viewtopic.php?t=76490
http://www.sapfans.com/forums/viewtopic.php?t=20591
http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
2. How do I program double click in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=11601
http://www.sapfans.com/forums/viewtopic.php?t=23010
3. How do I add subtotals (I have problem to add them)...
http://www.sapfans.com/forums/viewtopic.php?t=20386
http://www.sapfans.com/forums/viewtopic.php?t=85191
http://www.sapfans.com/forums/viewtopic.php?t=88401
http://www.sapfans.com/forums/viewtopic.php?t=17335
4. How to add list heading like top-of-page in ABAP lists?
http://www.sapfans.com/forums/viewtopic.php?t=58775
http://www.sapfans.com/forums/viewtopic.php?t=60550
http://www.sapfans.com/forums/viewtopic.php?t=16629
5. How to print page number / total number of pages X/XX in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
http://www.sapfans.com/forums/viewtopic.php?t=64320
http://www.sapfans.com/forums/viewtopic.php?t=44477
7. How can I set the cell color in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=52107
8. How do I print a logo/graphics in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=81149
http://www.sapfans.com/forums/viewtopic.php?t=35498
http://www.sapfans.com/forums/viewtopic.php?t=5013
9. How do I create and use input-enabled fields in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=84933
http://www.sapfans.com/forums/viewtopic.php?t=69878
10. How can I use ALV for reports that are going to be run in background?
http://www.sapfans.com/forums/viewtopic.php?t=83243
http://www.sapfans.com/forums/viewtopic.php?t=19224
11. How can I display an icon in ALV? (Common requirement is traffic light icon).
http://www.sapfans.com/forums/viewtopic.php?t=79424
http://www.sapfans.com/forums/viewtopic.php?t=24512
12. How can I display a checkbox in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=88376
http://www.sapfans.com/forums/viewtopic.php?t=40968
http://www.sapfans.com/forums/viewtopic.php?t=6919
Link containing all the important PDFS. ( There is a PDF for ALV Grid in this link)
http://www.easymarketplace.de/online-pdfs.php
Hope these details are useful to you.
Thanks!!
‎2009 Jan 10 4:40 AM
Hello Vijay,
Please search SDN before posting your question. Trust me you will get faster solutions if you try to search )
Happy searching !!!
BR,
Suhas
‎2009 Jan 10 7:58 AM
try this...
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
i_callback_user_command = 'USER_COMMAND '
is_layout = is_layout
it_fieldcat = it_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'X'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
TABLES
t_outtab = it_final
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. " alv_display
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
*----- When the User Clicks on on the Order
WHEN '&IC1'.
IF rs_selfield-fieldname EQ 'BANFN'.
READ TABLE it_final INTO wa_final INDEX rs_selfield-tabindex.
SET PARAMETER ID 'BAN' FIELD wa_final-banfn.
CALL TRANSACTION 'ME53N' AND SKIP FIRST SCREEN.
ELSEIF rs_selfield-fieldname EQ 'EBELN'.
READ TABLE it_final INTO wa_final INDEX rs_selfield-tabindex.
CHECK wa_final-ebeln IS NOT INITIAL.
SET PARAMETER ID 'BES' FIELD wa_final-ebeln.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ELSEIF rs_selfield-fieldname EQ 'BELNR'.
READ TABLE it_final INTO wa_final INDEX rs_selfield-tabindex.
CHECK wa_final-belnr IS NOT INITIAL.
SET PARAMETER ID 'MBN' FIELD wa_final-belnr.
SET PARAMETER ID 'MJA' FIELD wa_final-gjahr.
CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM. "user_command
‎2009 Jan 10 8:09 AM
Hi,
Please follow the code below.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER = ' '
I_SAVE = 'A'
I_CALLBACK_PROGRAM = 'Program name'
I_CALLBACK_PF_STATUS_SET = 'F01_ALV_EVENT_PF_STATUS_SET'
I_CALLBACK_USER_COMMAND = 'F01_ALV_EVENT_USER_COMMAND'
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FCAT[]
I_GRID_TITLE = W_GRIDTITLE
TABLES
T_OUTTAB = IT_OFIN[].
FORM F01_ALV_EVENT_USER_COMMAND USING PU_UCOMM LIKE SY-UCOMM
PU_SELFIELD TYPE SLIS_SELFIELD.
CASE PU_UCOMM.
WHEN '&IC1'.
CASE PU_SELFIELD-FIELDNAME.
WHEN 'LIFNR'.
W_LIFNR1 = PU_SELFIELD-VALUE.
SET PARAMETER ID 'LIF' FIELD W_LIFNR1.
CALL TRANSACTION 'XK03'.
EXIT.
WHEN 'EBELN'.
W_EBELN1 = PU_SELFIELD-VALUE.
SET PARAMETER ID 'BES' FIELD W_EBELN1.
CALL FUNCTION 'ME_DISPLAY_PURCHASE_DOCUMENT'
EXPORTING
I_EBELN = W_EBELN1
I_ENJOY = 'X'
I_DISPLAY_ONLY = 'X'.
EXIT.
ENDCASE.
READ TABLE IT_OFIN INTO WA_OFIN INDEX PU_SELFIELD-TABINDEX.
MOVE WA_OFIN-EBELN TO W_EBELN.
MOVE WA_OFIN-EBELP TO W_EBELP.
MOVE WA_OFIN-ZSPLTNO TO W_ZSPLTNO.
EXPORT W_EBELN FROM W_EBELN TO MEMORY ID 'MEM1'.
EXPORT W_EBELP FROM W_EBELP TO MEMORY ID 'MEM2'.
EXPORT W_ZSPLTNO FROM W_ZSPLTNO TO MEMORY ID 'MEM3'.
CALL TRANSACTION 'transaction to be called'.
WHEN '/&EB9'.
PU_SELFIELD-REFRESH = 'X'.
LOOP AT IT_OFIN INTO WA_OFIN WHERE SEL = 'X'.
MOVE WA_OFIN-EBELN TO WA_EXPT-EBELN.
MOVE WA_OFIN-EBELP TO WA_EXPT-EBELP.
MOVE WA_OFIN-ZSPLTNO TO WA_EXPT-ZSPLTNO.
APPEND WA_EXPT TO IT_EXPT.
CLEAR WA_EXPT.
CLEAR WA_OFIN.
ENDLOOP.
IF NOT IT_EXPT IS INITIAL.
EXPORT IT_EXPT = IT_EXPT TO MEMORY ID 'MM4'.
REFRESH IT_EXPT[].
ELSE.
MESSAGE I020(message id).
EXIT.
ENDIF.
CALL TRANSACTION 'transaction to be called'.
ENDCASE.
‎2009 Jan 10 2:01 PM
Use this below code..
START-OF-SELECTION.
SELECT * into corresponding fields of table itab FROM MARA.
END-OF-SELECTION.
************************************************************************
*build field catalog for basic list
************************************************************************
FIELDCATALOG-FIELDNAME = 'MATNR'.
FIELDCATALOG-SELTEXT_S = 'MAT-NUMBER'.
FIELDCATALOG-COL_POS = 0.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ERSDA'.
FIELDCATALOG-SELTEXT_S = 'CREATE-DATE'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ERNAM'.
FIELDCATALOG-SELTEXT_S = 'NAME'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'LAEDA'.
FIELDCATALOG-SELTEXT_S = 'LAST-DATE'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
************************************************************************
*call function module
************************************************************************
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND ='HANDLE_ALV_UCOMM'
IT_FIELDCAT = FIELDCATALOG[]
TABLES
t_outtab = ITAB
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.
form HANDLE_ALV_UCOMM using r_ucomm like sy-ucomm
r_selfield type slis_selfield.
case r_ucomm.
when '&IC1'.
read table itab index r_selfield-tabindex.
PERFORM BUILD_FIELDCATLOG_MARC.
PERFORM DATA_RETRIEVAL_MARC.
PERFORM DISPLAY_ALV_MARC.
endcase.
ENDFORM.
************************************************************************
*Build field catalog for secondary list
************************************************************************
FORM BUILD_FIELDCATLOG_MARC.
refresh FIELDCATALOG.
FIELDCATALOG-TABNAME = 'ITAB1'.
FIELDCATALOG-FIELDNAME = 'WERKS'.
FIELDCATALOG-SELTEXT_S = 'PLANT'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-TABNAME = 'ITAB1'.
FIELDCATALOG-FIELDNAME = 'PSTAT'.
FIELDCATALOG-SELTEXT_S = 'MAINTANANCE-STATUS'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM.
************************************************************************
*form data retrival
************************************************************************
FORM DATA_RETRIEVAL_MARC.
SELECT werks pstat lvorm FROM MARC into table itab1
WHERE MATNR = itab-MATNR.
ENDFORM.
************************************************************************
*call function display-alv
************************************************************************
FORM DISPLAY_ALV_MARC.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = FIELDCATALOG[]
TABLES
t_outtab = ITAB1.
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.
‎2009 Feb 10 11:13 AM