07-12-2010 8:18 AM
Hi,
I have requirement in which after displaying the ALV out put, immediately when the check box is checked i need to capture it and proceed with further coding with that input.
Check box click is not getting captured in "USER COMMAND or LINE SELECTION"
Could you please suggest a way.
Regards
venkatesh.
07-12-2010 8:57 AM
Hi venkatesh,
Please check this standard test ALV block program BALVBT01.
Regards,
Sri
07-12-2010 9:06 AM
Hi,
DATA : LV_REF1 TYPE REF TO CL_GUI_ALV_GRID,
LV_VALID TYPE C.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = LV_REF1.
CALL METHOD LV_REF1->CHECK_CHANGED_DATA
IMPORTING
E_VALID = LV_VALID.
IF LV_VALID = 'X' .
" Your Logic.
endif.
Hope this might help you.
With Regards,
Sumodh.P
07-12-2010 9:15 AM
Venkatesh,
If you are using cl_gui_alv_grid you need to register "change" event to catch the checkbox change.
you do so with this method of cl_gui_alv_grid class :
register_edit_event( i_event_id = cl_gui_alv_grid=>mc_evt_modified ).
************************
event handler class
class lcl_event_receiver definition.
public section.
methods:
user_command for event user_command of cl_gui_alv_grid
importing e_ucomm, "#EC NEEDED
data_changed for event data_changed of cl_gui_alv_grid
importing er_data_changed e_onf4 e_onf4_before e_onf4_after e_ucomm,"#EC NEEDED
endclass.
global data
data: o_event_receiver type ref to lcl_event_receiver.
data: goo_grid type ref to cl_gui_alv_grid.
At the displaying of your grid / register the change event and set handlers
goo_grid->register_edit_event( i_event_id = cl_gui_alv_grid=>mc_evt_modified ).
set handler:
o_event_receiver->user_command for goo_grid,
o_event_receiver->data_changed for goo_grid.
hope this helps...
regards
07-12-2010 9:21 AM
Hi Venkatesh,
Please check the link below:
[ALV Grid Display with checkbox to process selected records at runtime|http://wiki.sdn.sap.com/wiki/display/Snippets/ALVGridDisplaywithcheckboxtoprocessselectedrecordsatruntime]
Regards,
Md Ziauddin.
07-12-2010 9:22 AM
Hi,
Make use of field I_CHECKBOX_FIELDNAME of function module 'REUSE_ALV_POPUP_TO_SELECT'.With this ,you will have to the usual 'REUSE_ALV_GRID_DISPLAY'.
Regds,
abhee
07-12-2010 9:30 AM
Example:
TYPE-POOLS: SLIS.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV,
X_EVENTS TYPE SLIS_ALV_EVENT,
IT_EVENTS TYPE SLIS_T_EVENT.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
CHK(1),
color(4),
END OF ITAB.
SELECT VBELN
POSNR
FROM VBAP
UP TO 20 ROWS
INTO TABLE ITAB.
X_FIELDCAT-FIELDNAME = 'CHK'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
X_FIELDCAT-INPUT = 'X'.
X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-CHECKBOX = 'X'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = 'VBELN'.
X_FIELDCAT-HOTSPOT = 'X'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
07-12-2010 9:31 AM
Continue.....
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
L_LAYOUT-info_fieldname = 'COLOR'.
*L_LAYOUT-ZEBRA = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
I_CALLBACK_PF_STATUS_SET = 'STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = IT_FIELDCAT
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 STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.
*Pf status
SET PF-STATUS 'STATUS'.
ENDFORM. " STATUS
07-12-2010 9:32 AM
Continue.....
*&---------------------------------------------------------------------
*& Form USER_COMMAND
*&---------------------------------------------------------------------
*text
*----------------------------------------------------------------------
*-->R_UCOMM text
*-->RS_SELFIELD text
*----------------------------------------------------------------------
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA: GD_REPID LIKE SY-REPID, "Exists
REF_GRID TYPE REF TO CL_GUI_ALV_GRID.
IF REF_GRID IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF_GRID.
ENDIF.
IF NOT REF_GRID IS INITIAL.
CALL METHOD REF_GRID->CHECK_CHANGED_DATA .
ENDIF.
loop at itab where chk = 'X'.
itab-color = 'C300'.
modify itab index sy-tabix transporting color.
endloop.
RS_SELFIELD-refresh = 'X'.
break-point.
ENDFORM. "USER_COMMAND