Ver Mensaje Individual
  #2  
Viejo 12/08/08, 13:29:35
ibecerra
 
Mensajes: n/a
utiliza el metodo siguiente.

class lcl_event_receiver definition.
public section.
METHODS handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive.
.
.
.
methods handle_data_changed "metodo para saber si has hecho una entrada al " alv
for event data_changed of cl_gui_alv_grid
endclass.
class lcl_event_receiver implementation.
METHOD handle_toolbar.
PERFORM handle_toolbar CHANGING e_object.
ENDMETHOD. "handle_toolbar
method handle_data_changed.
perform data_changed using er_data_changed.
ENDMETHOD.
endclass. "lcl_event_receiver IMPLEMENTATION
****
FORM data_changed USING p_data_changed
TYPE REF TO cl_alv_changed_data_protocol.
DATA: d_mod_cells TYPE lvc_s_modi.
DATA: w_buenas TYPE i.
DATA: w_modif TYPE i.
DATA: NRCONST LIKE ZTFCONSTDET-NRCONST.
data: d_stable like lvc_s_stbl.
DATA:
S_ROW TYPE LVC_S_ROW,
S_COL TYPE LVC_S_COL,
S_ROI TYPE LVC_S_ROID,
T_ROW TYPE LVC_T_ROW,
T_ROID TYPE LVC_T_ROID,
CELL TYPE LVC_T_CELL.
S_ROW = 3.
*------verifica si habido algun cambio en las celdad
* Clear: L_NRCE, L_FCER , L_IMRT, L_DMBTR.
LOOP AT p_data_changed->mt_mod_cells INTO d_mod_cells
WHERE NOT value IS INITIAL.
EXIT.
ENDLOOP.
**
CHECK sy-subrc EQ 0.
*--identifica el campo q ha recibido una entrada
CASE d_mod_cells-fieldname.
WHEN 'NRCONST'.
*----se evalua el valor del campo ingresado
CALL METHOD p_data_changed->get_cell_value
EXPORTING
i_row_id = d_mod_cells-row_id
i_fieldname = d_mod_cells-fieldname
IMPORTING
e_value = NRCONST.
IF NRCONST IS INITIAL OR NRCONST = 0. .
CALL METHOD p_data_changed->add_protocol_entry
EXPORTING
i_msgid = '0K'
i_msgno = '000'
i_msgty = 'E'
i_msgv1 = text-m01
i_fieldname = d_mod_cells-fieldname
i_row_id = d_mod_cells-row_id.
ELSE.
READ TABLE TI_ZTFACTRET INDEX
d_mod_cells-row_id.
IF SY-SUBRC EQ 0.
CONCATENATE 'CD|' NRCONST '/'
p_fecde+6(2) '.' p_fecde+4(2) '.'
p_fecde(4)
INTO TI_ZTFACTRET-BKTXT.
replace '|' WITH ' ' INTO TI_ZTFACTRET-BKTXT.
TI_ZTFACTRET-ICON = ICON_GREEN_LIGHT.
MODIFY TI_ZTFACTRET
INDEX d_mod_cells-row_id.

* Inicio IBF02 31.08.2007
d_stable-row = 'X'.
d_stable-col = 'X'.
CALL METHOD grid1->refresh_table_display
EXPORTING
is_stable = d_stable
i_soft_refresh = 'X'.
ENDIF.
ERROR = 0.
LOOP AT TI_ZTFACTRET ASSIGNING <ZTFACTRET>.
IF <ZTFACTRET>-BKTXT = ''.
ERROR = 1.
ENDIF.
ENDLOOP.
ENDIF.
ENDCASE.
ENDFORM. "data_changed
Responder Con Cita