Ver Mensaje Individual
  #2  
Viejo 11/03/08, 12:47:57
ibecerra
 
Mensajes: n/a
Que tal, lo podrias hacer con un enter, es decir te creas un status "Menu" lo invocas desde el alv.
pero debes hacer algo especial en el status.. en el boton que tiene un
√ poner la palabra enter o ok.
luego cuando estes en la celda editables y des enter se accionara el
USER_COMMAND
ejemplo..
si llamo a la funcion para displayar el alv
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_pf_status_set = 'SET_STATUS' ---LLAMADA DEL MENU
i_callback_user_command = 'USER_COMMAND' -- ,, DEL USERCOMMAD
i_structure_name = 'TI_INTERNA'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
IT_EXCLUDING = gs_exclude[]
i_save = g_save
is_variant = g_variant
it_events = gt_events[]
is_print = gs_print
TABLES
t_outtab = TI_INTERNA
EXCEPTIONS
program_error = 1
OTHERS = 2.



FORM user_command USING pa_ucomm LIKE sy-ucomm
pa_tabla TYPE slis_selfield.
CASE pa_ucomm.
when 'ENTER'.

CHECK NOT pa_tabla-value IS INITIAL.
READ TABLE TI_INTERNA INDEX pa_tabla-tabindex. "Te indica en la posicion q se encuentra.
IF SY-SUBRC EQ 0.
aqui pones tu logica de calculo.... y actualizas tu tabla interna
ENDIF.
* y por ultimo para refrescarla ejecutas la siguiente sentencia
pa_tabla-refresh = 'X'.
pa_tabla-col_stable = 'X'.
pa_tabla-row_stable = 'X'.

encase.
espero poder haberte ayudado.
saludos

Responder Con Cita