‎2008 May 23 1:30 PM
hi friends,
i have a problem with alv.
1. when i select assending sort button in alv grid display ouput ,i need to get a pop screen with messg ur field has been sorted.how can i get this?
‎2008 May 23 1:47 PM
It's possible in event BEFORE_USER_COMMAND of cl_gui_alv_grid. You must registered this event by handler for your grid instance.
‎2008 May 23 2:56 PM
Hi,
Refer to this program....
********************************************
TABLES: qmel,qmih,iflot,z94392_notif.
DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid .
DATA gc_custom_control_name TYPE scrfname VALUE 'CUST_C' .
DATA gr_ccontainer TYPE REF TO cl_gui_custom_container .
DATA gt_fieldcat TYPE lvc_t_fcat .
DATA gs_layout TYPE lvc_s_layo.
DATA: e_row_id TYPE lvc_s_row,
e_column_id TYPE lvc_s_col,
es_row_no TYPE lvc_s_roid.
DATA: BEGIN OF itab1 OCCURS 0,
qmnum LIKE qmel-qmnum,
qmtxt LIKE qmel-qmtxt,
indtx LIKE qmel-indtx,
qmdat LIKE qmel-qmdat,
ltrmn LIKE qmel-ltrmn,
priok LIKE qmel-priok,
aufnr LIKE qmel-aufnr,
bezdt LIKE qmel-bezdt,
qmnam LIKE qmel-qmnam,
qmart LIKE qmel-qmart,
END OF itab1.
DATA: BEGIN OF itab2 OCCURS 0,
qmnum LIKE qmih-qmnum,
btpln LIKE qmih-btpln,
ingrp LIKE qmih-ingrp,
END OF itab2.
DATA : itab3 TYPE TABLE OF z94392_notif WITH HEADER LINE.
CLASS notification DEFINITION.
PUBLIC SECTION.
CLASS-METHODS : handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column.
ENDCLASS. "NOTIFICATION DEFINITION
CLASS notification IMPLEMENTATION.
METHOD handle_double_click.
PERFORM handle_double_click USING e_row e_column es_row_no.
ENDMETHOD. "handle_double_click
ENDCLASS. "NOTIFICATION IMPLEMENTATION
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS : notnum FOR qmel-qmnum OBLIGATORY,
notype FOR qmel-qmart,
floc FOR qmih-btpln,
name FOR qmel-qmnam.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
SELECT qmnum qmtxt indtx qmdat ltrmn priok aufnr bezdt qmnam qmart INTO
TABLE itab1 FROM qmel WHERE qmnum IN notnum
AND qmart IN notype AND qmnam IN name.
SELECT qmnum btpln ingrp INTO TABLE itab2 FROM qmih FOR ALL ENTRIES IN
itab1 WHERE qmnum = itab1-qmnum AND btpln IN floc.
LOOP AT itab1.
itab3-qmnum = itab1-qmnum.
itab3-qmtxt = itab1-qmtxt.
itab3-indtx = itab1-indtx.
itab3-qmdat = itab1-qmdat.
itab3-ltrmn = itab1-ltrmn.
itab3-priok = itab1-priok.
itab3-aufnr = itab1-aufnr.
itab3-bezdt = itab1-bezdt.
itab3-qmnam = itab1-qmnam.
itab3-qmart = itab1-qmart.
READ TABLE itab2 WITH KEY qmnum = itab1-qmnum.
itab3-btpln = itab2-btpln.
itab3-ingrp = itab2-ingrp.
APPEND itab3.
ENDLOOP.
END-OF-SELECTION.
IF itab3 IS INITIAL.
MESSAGE 'ENTER A VALID ENTRY' TYPE 'I'.
else.
CALL SCREEN '100'.
ENDIF.
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE status_0100 OUTPUT.
SET PF-STATUS '100'.
SET TITLEBAR 'xxx'.
IF gr_alvgrid IS INITIAL .
CREATE OBJECT gr_ccontainer
EXPORTING
PARENT =
container_name = gc_custom_control_name
STYLE =
LIFETIME = lifetime_default
REPID =
DYNNR =
NO_AUTODEF_PROGID_DYNNR =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CREATE OBJECT gr_alvgrid
EXPORTING
I_SHELLSTYLE = 0
I_LIFETIME =
i_parent = gr_ccontainer
I_APPL_EVENTS = space
I_PARENTDBG =
I_APPLOGPARENT =
I_GRAPHICSPARENT =
I_NAME =
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL METHOD gr_alvgrid->set_table_for_first_display
EXPORTING
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
i_structure_name = 'Z94392_NOTIF'
IS_VARIANT =
I_SAVE =
I_DEFAULT = 'X'
IS_LAYOUT =
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
CHANGING
it_outtab = itab3[]
IT_FIELDCATALOG =
IT_SORT =
IT_FILTER =
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
SET HANDLER notification=>handle_double_click FOR gr_alvgrid.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Form handle_double_click
&----
text
----
-->P_E_ROW text
-->P_E_COLUMN text
-->P_ES_ROW_NO text
----
FORM handle_double_click USING e_row TYPE lvc_s_row
e_column TYPE lvc_s_col
es_row_no TYPE lvc_s_roid.
DATA: t_output TYPE z94392_notif.
READ TABLE itab3 INTO t_output INDEX e_row-index .
IF sy-subrc = 0 AND e_column-fieldname EQ 'QMNUM'.
CALL TRANSACTION 'Z94406_SAPSCR' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM. " handle_double_click
******************************************************
Reward if helpful.
Regards,
Syed