#9
|
|||
|
|||
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|