‎2008 Aug 04 8:19 AM
hi
how to handle hotspot in module pool
want to navigate to other screen when clicking on the textfield.
able to see hand symbol on the textfield by setting the double click attribute in screen painter..but how to trigger the function code and navigate?
‎2008 Aug 04 8:25 AM
Hi!
here a sample code...hope this helps!
Regards
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
IF r_ucomm = '&IC1'.
IF NOT rs_selfield-value IS INITIAL.
IF rs_selfield-sel_tab_field = 'TB_VIAGGIO_ALV-NORD'.
nord = rs_selfield-value.
*HERE YOU CAN CALL A SCREEN OR A TRANSACTION
ENDIF.
ENDIF.
ENDIF.
endform.
‎2008 Aug 04 8:32 AM
hi pozzi,
the code will work for reports but want to retrieve fetchcode/(similar operaion) in module pool..
double clicking the link does not triggering the code itself...
‎2008 Aug 04 8:30 AM
Hi Jay,
Check this ALV report for hot spot event
&----
*& Report displaying an ALV GRID CONTROL which responds *
*& to HOTSPOT click event *
&----
REPORT ZZ_ALV_GRID_RESPONDING_HOTSPOT_CLICK .
TABLES : BKPF .
DATA : I_BKPF TYPE STANDARD TABLE OF BKPF WITH HEADER LINE .
DATA : MOK_CODE LIKE SY-UCOMM .
DATA : OK_CODE LIKE SY-UCOMM .
DATA : MM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER .
DATA : MM_ALVGRID TYPE REF TO CL_GUI_ALV_GRID .
DATA : CT_FIELDCAT TYPE STANDARD TABLE OF LVC_S_FCAT .
DATA : WA_FIELDCAT LIKE LVC_S_FCAT .
----
CLASS RESPOND_EVENTS DEFINITION
----
----
CLASS RESPOND_EVENTS DEFINITION .
PUBLIC SECTION .
METHODS : RESPOND_HOTSPOT_CLICK FOR EVENT
HOTSPOT_CLICK OF
CL_GUI_ALV_GRID IMPORTING E_ROW_ID
E_COLUMN_ID
ES_ROW_NO.
ENDCLASS . "RESPOND_EVENTS DEFINITION
----
CLASS RESPOND_EVENTS IMPLEMENTATION
----
----
CLASS RESPOND_EVENTS IMPLEMENTATION .
METHOD RESPOND_HOTSPOT_CLICK .
CLEAR BKPF .
READ TABLE I_BKPF INDEX E_ROW_ID INTO BKPF .
IF SY-SUBRC EQ 0 .
SET PARAMETER ID 'BLN' FIELD BKPF-BELNR .
SET PARAMETER ID 'BUK' FIELD BKPF-BUKRS .
SET PARAMETER ID 'GJR' FIELD BKPF-GJAHR .
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN .
ENDIF .
ENDMETHOD . "RESPOND_HOTSPOT_CLICK
ENDCLASS . "RESPOND_EVENTS IMPLEMENTATION
DATA : I_RESPOND_EVENTS TYPE REF TO RESPOND_EVENTS .
*=====================================================
SELECTION SCREEN - ( DEFAULT )
*=====================================================
SELECT-OPTIONS : S_BELNR FOR I_BKPF-BELNR OBLIGATORY.
*=====================================================
START OF SELECTION
*=====================================================
START-OF-SELECTION .
SELECT * FROM BKPF
INTO CORRESPONDING FIELDS OF TABLE I_BKPF
WHERE BELNR IN S_BELNR .
*======================================================
END-OF-SELECTION .
*======================================================
END-OF-SELECTION .
CALL SCREEN 100 .
------------------------------------------------------
The screen 100 has a custom control named 'MCONTAINER'
and a command button with function code 'QUIT' .
Of course has an element called OK_CODE like sy-ucomm .
The flow logic of the screen has in the output section
the module PREPARE_OUTPUT ,
and in the input section the module USER_COMMAND_0100 .
------------------------------------------------------
&----
*& Module USER_COMMAND_0100 INPUT
&----
----
MODULE USER_COMMAND_0100 INPUT.
CLEAR : MOK_CODE .
MOK_CODE = OK_CODE .
CLEAR : OK_CODE .
CASE MOK_CODE .
WHEN 'QUIT' .
LEAVE TO SCREEN 0 .
ENDCASE .
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module OUTPUT OUTPUT
&----
text
----
MODULE PREPARE_OUTPUT OUTPUT .
IF MM_CONTAINER IS INITIAL .
CREATE OBJECT MM_CONTAINER
EXPORTING CONTAINER_NAME = 'MCONTAINER' .
CREATE OBJECT MM_ALVGRID
EXPORTING I_PARENT = MM_CONTAINER .
PERFORM CATALOG_CREATION .
PERFORM SHOW_DATA .
CREATE OBJECT I_RESPOND_EVENTS .
SET HANDLER I_RESPOND_EVENTS->RESPOND_HOTSPOT_CLICK
FOR MM_ALVGRID .
ENDIF .
ENDMODULE. " OUTPUT OUTPUT
&----
*& Form CATALOG_CREATION
&----
*
FORM CATALOG_CREATION .
call function 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'BKPF'
CHANGING
ct_fieldcat = Ct_fieldcat.
LOOP AT Ct_fieldcat INTO WA_fieldcat.
IF ( WA_FIELDCAT-FIELDNAME NE 'BUKRS' )
AND ( WA_FIELDCAT-FIELDNAME NE 'BELNR' )
AND ( WA_FIELDCAT-FIELDNAME NE 'GJAHR' ) .
WA_FIELDCAT-HOTSPOT = 'X' .
MODIFY Ct_fieldcat FROM WA_fieldcat.
ENDIF .
ENDLOOP.
DELETE Ct_fieldcat WHERE HOTSPOT = 'X' .
LOOP AT Ct_fieldcat INTO WA_fieldcat.
IF WA_FIELDCAT-FIELDNAME EQ 'BELNR' .
WA_FIELDCAT-HOTSPOT = 'X' .
MODIFY Ct_fieldcat FROM WA_fieldcat.
ENDIF .
ENDLOOP.
ENDFORM. " CATALOG_CREATION
&----
*& Form SHOW_DATA
&----
FORM SHOW_DATA .
CALL METHOD MM_ALVGRID->SET_TABLE_FOR_FIRST_DISPLAY
CHANGING
IT_OUTTAB = I_BKPF[]
IT_FIELDCATALOG = Ct_fieldcat[].
ENDFORM. " SHOW_DATA
Mohinder
‎2008 Aug 11 12:59 PM