Ver Mensaje Individual
  #10  
Viejo 27/08/08, 11:10:49
vickxo vickxo is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Localización: Madrid, España
Mensajes: 118
Hola!

Hola, encontre este codigo:


FORM data_changed USING rr_data TYPE REF TO
cl_alv_changed_data_protocol.
DATA : ls_mod_cell TYPE lvc_s_modi.
DATA : c_texto LIKE tj30t-txt30.
SORT rr_data->mt_mod_cells BY row_id .
LOOP AT rr_data->mt_mod_cells INTO ls_mod_cell.
* Compruebo que el campo que se ha modificado es el que quiero
tratar
IF ls_mod_cell-fieldname = 'ESTAT'.
* Haces las comprobaciones necesarias
SELECT SINGLE txt30 INTO c_texto
FROM tj30t
WHERE stsma = 'ZCSIORD'
AND txt04 = ls_mod_cell-value
AND spras = sy-langu.
READ TABLE g_mseg INDEX ls_mod_cell-row_id .
IF sy-subrc = 0.
* Con el resultado, modifico el campo que quiero
g_mseg-txt30 = c_texto.
* Primero modifico la tabla interna
MODIFY g_mseg INDEX ls_mod_cell-row_id.
* Luego hago el refresh del campo que quiero que se modifique
en el ALV
CALL METHOD rr_data->modify_cell
EXPORTING
i_row_id = ls_mod_cell-row_id
i_fieldname = 'TXT30' "Aquí va el campo que quieres
modificar
i_value = c_texto. "Aquí el texto que quieres
modificar
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. "data_change

lo tome de aqui ...



No c muy bien si puedes controlar el user_command su fuese asi podria intentar esto:
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: w_answer TYPE c.
rs_selfield-refresh = 'X'.

CASE r_ucomm.
WHEN 'EXEC'.
*--La comprobación sólo se realiza si no estamos en test, ya que
*..cuando ejecutamos en test no se crea el juego de datos
*****Campo PA_CHECK ya no se utiliza.JRMR2008
*****Se cambia por pregunta si se requiere ejecutar el registro de
*****las Facturas.
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
diagnosetext1 = 'Va a procesar las Facturas'
diagnosetext2 = 'Desea Continuar'
textline1
...



Saludos.

Saludos
__________________
el tema esta en hacer la pregunta correcta...
Responder Con Cita