MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Problema con evento DATA_CHANGED en ALV (REUSE_ALV_GRID_DISPLAY) con campo editable (foro/showthread.php?t=42272)

gonzalez.lazo 18/03/11 15:47:46

Problema con evento DATA_CHANGED en ALV (REUSE_ALV_GRID_DISPLAY) con campo editable
 
Hola a todos,

Tengo poca experiencia en ABAP y esta es la primera vez que posteo, ya que normalmente encuentro lo que necesito.

Ahora se me presenta un problema y no se como solucionarlo:

En un ALV tengo una columna que es editable (Campo Check). Necesito saber cuando se modifica para poder actualizarlo en la tabla interna correspondiente para luego poder hacer un proceso de validaciones y almacenamiento en una Tabla Trasparente Z.

Entiendo que tengo que capturar el evento DATA_CHANGED y efectivamente este evento captura la acción de hacer click en el check pero al final de procesar el Form del evento me sale una ventana de Log de Errores.

El campo Texto de Mensaje del Log de Errores dice lo siguiente:
- El campo IT_SALIDA1-CHECK no existe en Dictionary

Este es el código del Form DATA_CHANGED

**********************************************************
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,
c_texto TYPE c.

* Inicialitzacions
DATA: rs_selfield TYPE slis_selfield.

* 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 = 'CHECK'.
CLEAR it_salida1.
READ TABLE it_salida1 INDEX ls_mod_cell-row_id.
IF sy-subrc = 0.
it_salida1-check = ls_mod_cell-value.
c_texto = ls_mod_cell-value.
MODIFY it_salida1 INDEX ls_mod_cell-row_id.
CALL METHOD rr_data->modify_cell
EXPORTING
i_row_id = ls_mod_cell-row_id
i_fieldname = 'CHECK'
i_value = c_texto
i_tabix = sy-tabix.

ENDIF.
ENDIF.
ENDLOOP.
* MESSAGE i300.

ENDFORM. "DATA_CHANGED

**********************************************************

A alguien se le ocurre como puedo hacer con esto, si voy bien encaminado o mejor hacerlo de otra forma?

He mirado de hacerlo con objetos, pero tendría que modificar todo el programa y no quiero, ya que lo tienen en producción.

Muchas gracias por su atención y espero que puedan ayudarme....

Saludos...

gib8107 22/03/11 14:42:10

Seguramente tienes alguna diferencia entre el nombre de la tabla que mandas y el que esta declarado.

de todas formas algunas veces para que se refresque el dato de la tabla interna es ncesesario poner


despues de eso se refre4scan los datos cambiados en la tabla interna.


Husos Horarios son GMT. La hora en este momento es 03:22:53.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web