Ver Mensaje Individual
  #9  
Viejo 27/08/08, 10:33:46
TUESDAY TUESDAY is offline
Member
 
Fecha de Ingreso: may 2006
Mensajes: 32
Vale, no he dicho nada, finalmente ha funcionado.
mi fallo estaba en que le he pasado el metodo con los parametros del exporting, pero al llamarlo sin pasarle nada por el exporting, ha funcionado perfectamente.
Muchas gracias a todos por vuestra ayuda!!!

Os dejo aqui el codigo de como ha quedado el evento data_change por si alguien lo necesitase algun dia.
FORM data_changed USING rr_data TYPE REF TO cl_alv_changed_data_protocol.
DATA : ls_mod_cell TYPE lvc_s_modi,
lv_value TYPE lvc_value,
ls_fielcat TYPE lvc_t_fcat.
* Inicialitzacions
DATA cant TYPE i.
* Tractament de les dades modificades
SORT rr_data->mt_mod_cells BY row_id .
LOOP AT rr_data->mt_mod_cells INTO ls_mod_cell.
IF ls_mod_cell-fieldname = 'LFIMG'.
* Realizamos las operaciones necesarias para nuestra modificacion
READ TABLE i_alv INDEX ls_mod_cell-row_id .
* Convertimos el string a entero
SEARCH ls_mod_cell-value FOR ',0'.
IF sy-subrc = 0.
ls_mod_cell-value = ls_mod_cell-value+0(sy-fdpos).
ENDIF.
REPLACE '.' IN ls_mod_cell-value WITH space.
CONDENSE ls_mod_cell-value NO-GAPS.
MOVE ls_mod_cell-value TO cant.
PERFORM calc_precio_xfact USING i_alv-kbetr
i_alv-kpein
cant
CHANGING i_alv-kwert.

IF sy-subrc = 0.
MODIFY i_alv INDEX ls_mod_cell-row_id.
CALL METHOD rr_data->modify_cell
EXPORTING
i_row_id = ls_mod_cell-row_id
i_fieldname = 'KWERT'
i_value = i_alv-kwert.
ENDIF.
ENDIF.
ENDLOOP.
* Actualizamos el alv, para que se actualicen los totales
DATA: ld_grid TYPE REF TO cl_gui_alv_grid.
* Esta funcion devuelve la instancia del alv que estamos pintando
* para poder usar los metodos asociados al alv
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
* EXPORTING
* IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
* ET_EXCLUDING =
* E_REPID =
* E_CALLBACK_PROGRAM =
* E_CALLBACK_ROUTINE =
e_grid = ld_grid
* ET_FIELDCAT_LVC =
* ER_TRACE =
* E_FLG_NO_HTML =
* ES_LAYOUT_KKBLO =
* ES_SEL_HIDE =
* ET_EVENT_EXIT =
.

DATA: d_stable LIKE lvc_s_stbl.
d_stable-row = 'X'.
d_stable-col = 'X'.
* Actualizamos el alv
CALL METHOD ld_grid->refresh_table_display
* EXPORTING
* is_stable = d_stable
* i_soft_refresh = 'X'
.
ENDFORM.
Responder Con Cita