2007 Aug 01 9:13 AM
hi,
I am having a ALV report with columns like ,
PO# SO Message Type Message Code IDOC#
25588156 30012584 Ack/ASN IC 9112245778
I need to have following functionalities as below,
1.Go directly to the display PO screen (ME23N) when the PO# is double clicked.
2.Go directly to the display IDOC screen (WE02?) when the IDOC# is double clicked
Can anyone help me please, Thanks in advance
hi,
I am having a ALV report with columns like ,
PO# SO Message Type Message Code IDOC#
25588156 30012584 Ack/ASN IC 9112245778
I need to have following functionalities as below,
1.Go directly to the display PO screen (ME23N) when the PO# is double clicked.
2.Go directly to the display IDOC screen (WE02?) when the IDOC# is double clicked
Can anyone help me please, Thanks in advance
2007 Aug 01 9:38 AM
Hi,
Try to make the PO numbers HOT SPOT and like the tcodes to the same. See the example below:
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-SELTEXT_L = 'BILLING DOC'.
WA_FIELDCAT-TABNAME = 'IT_VBRP'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-HOTSPOT = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT.
Or u can use the user_command event and then call the tcode using the case statement in it.
Regards,
Himanshu
2007 Aug 01 9:48 AM
Hi Prakash,
Handle the user command when the PO field is clicked.
CASE 'sy-ucomm':
WHEN 'EBELN':
SET PARAMETER ID 'BES' FIELD wa_itab-ebeln.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
Same way handle when the user clicks on idoc number.
Reward points for helpful answers.
2007 Aug 01 9:50 AM
Hi prakash,
1. We have to write some special code
a) to detect double click in alv
b) detect the row on which it is clicked
2. just copy paste for sample program
(important code is in bold)
3.
REPORT abc.
TYPE-POOLS : slis.
*----
Data
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE t001.
DATA : flag tyPE c,
END OF itab.
DATA : alvfc TYPE slis_t_fieldcat_alv.
DATA : alvly TYPE slis_layout_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
alvly-box_fieldname = 'FLAG'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = alvfc
<b> i_callback_program = sy-repid "<-------Important
i_callback_user_command = 'ITAB_USER_COMMAND' "<------ Important</b>
is_layout = alvly
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
<b>*----
CALL BACK FORM
*----
FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
slis_selfield.
*----
IMPORTANT.
data : m(100) type c.
m = whatrow-tabindex.
condense m.
concatenate 'Row Number is ' m into m separated by space.
concatenate m ' : Field Clicked is ' whatrow-fieldname into m separated
by space.
message m type 'I'.
ENDFORM. "ITAB_user_command</b>
regards,
amit m.
2007 Aug 01 10:07 AM
Tri this.
TYPE-POOLS: SLIS.
DATA: V_REPID LIKE SY-REPID.
DECLARATION FOR FIELDCATALOG
DATA: IFIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: T_LISTHEADER TYPE SLIS_T_LISTHEADER.
DECLARATION FOR EVENT TABLE WHERE USER COMMAND OR PF STATUS WILL DEFINE
DATA: V_EVENT TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
*DECLARATION FOR LAYOUT
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
*DECLARATION FOR VARIANT(TYPE OF DISPLAY WE WANT)
DATA: IVARIANT TYPE DISVARIANT,
IVARIANT1 TYPE DISVARIANT,
ISAVE(1) TYPE C.
TITLE REPORT TITLE
DATA: REP_TITLE TYPE LVC_TITLE VALUE 'Purchase Display Data'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BULD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM BULD_LISTHEADER USING T_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.
FORM BULD_FIELDCATLOG .
WA_FIELDCAT-COL_POS = '1' .
WA_FIELDCAT-TABNAME = IT_FINAL .
WA_FIELDCAT-FIELDNAME = 'MBLNR' .
WA_FIELDCAT-OUTPUTLEN = '10' .
WA_FIELDCAT-SELTEXT_M = 'GR No.' .
WA_FIELDCAT-FIX_COLUMN = 'X' .
WA_FIELDCAT-KEY = 'X' .
WA_FIELDCAT-FIX_COLUMN = 'X' .
APPEND WA_FIELDCAT TO IFIELDCAT .
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = '2' .
WA_FIELDCAT-TABNAME = IT_FINAL .
WA_FIELDCAT-FIELDNAME = 'CPUDT' .
WA_FIELDCAT-OUTPUTLEN = '14' .
WA_FIELDCAT-SELTEXT_M = 'GR Entry Date' .
WA_FIELDCAT-FIX_COLUMN = 'X' .
WA_FIELDCAT-KEY = 'X' .
APPEND WA_FIELDCAT TO IFIELDCAT .
CLEAR WA_FIELDCAT.
ENDFORM.
FORM EVENT_CALL .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENT
EXCEPTIONS
LIST_TYPE_WRONG = 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.
FORM POPULATE_EVENT .
READ TABLE V_EVENT INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENT FROM WA_EVENT TRANSPORTING FORM
WHERE NAME = WA_EVENT-FORM.
ENDIF.
READ TABLE V_EVENT INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENT FROM WA_EVENT TRANSPORTING FORM
WHERE NAME = WA_EVENT-FORM.
ENDIF.
ENDFORM.
FORM GET_DATA .
get ur data here.
ENDFORM.
FORM BULD_LISTHEADER USING P_T_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'Purchase Display Data'.
HLINE-TYP = 'H'.
APPEND HLINE TO T_LISTHEADER.
ENDFORM.
FORM DISPLAY_ALV_REPORT .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = IFIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = V_EVENT
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.
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_LISTHEADER
i_logo = 'WIN'
I_END_OF_LIST_GRID =
.
ENDFORM. "TOP_OF_PAGE
&----
*& Form USER_COMMAND
&----
text
----
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
----
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_FINAL INTO WA_FINAL INDEX RS_SELFIELD-TABINDEX.
PERFORM CALL_TCODE USING WA_FINAL RS_SELFIELD-FIELDNAME.
ENDCASE.
ENDFORM.
FORM CALL_TCODE USING WA_SEL LIKE IT_FINAL
SEL_FIELD TYPE SLIS_SELFIELD-FIELDNAME.
IF SEL_FIELD EQ 'MBLNR' AND WA_SEL-MBLNR IS NOT INITIAL .
SET PARAMETER ID 'MBN' FIELD WA_SEL-MBLNR .
SET PARAMETER ID 'MJA' FIELD WA_SEL-GJAHR .
CALL TRANSACTION 'MIGO' AND SKIP FIRST SCREEN.
ELSEIF ( SEL_FIELD EQ 'LIFNR' OR SEL_FIELD EQ 'NAME1' ) AND WA_SEL-LIFNR IS NOT INITIAL .
SET PARAMETER ID 'LIF' FIELD WA_SEL-LIFNR .
SET PARAMETER ID 'EKO' FIELD '1000' .
CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.
ELSE .
MESSAGE 'Incorrect Cursor Position' TYPE 'S' .
ENDIF.
ENDFORM.
Reward if its helpful
Jitendra
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |