Ver Mensaje Individual
  #6  
Viejo 14/05/10, 00:26:39
lilisarment lilisarment is offline
Junior Member
 
Fecha de Ingreso: abr 2009
Mensajes: 12
Gardar Datos De Alv Editable

Hola a todos,

Ojala puedan ayudarme.

he creado un alv editable, no tengo problema con eso pero a la hora de guardar mis datos es donde tengo el problema,

Cuando quiero actualizar los nuevos registros a las 4 tablas que uso me duplica el registro y me crea uno nuevo con los datos modificados en las tablas. Lo que necesito es que me actualice solo los registros que yo modifique sobre los registros que me muestra y no quiero que me agregue un registro nuevo con los datos.

les muestro el codigo que uso para guardar:

*&---------------------------------------------------------------------*
*& Form GUARDAR_DATOS
*&---------------------------------------------------------------------*
FORM GUARDAR_DATOS.
***Estas son las 4 tablas que actualizare .
data: it_alv_zcdoctlacc_temp l ike zop3acciones OCCURS 0 WITH HEADER LINE,
wa_alv_zcdoctlacc_temp TYPE zop3accioneS,
it_alv_zcdoctlacc1_temp like zop3dndp OCCURS 0 WITH HEADER LINE,
wa_alv_zcdoctlacc1_temp TYPE zop3dndp,
it_alv_zcdoctlacc2_temp like zop3ndp OCCURS 0 WITH HEADER LINE,
wa_alv_zcdoctlacc2_temp TYPE zop3ndp,
it_alv_zcdoctlacc3_temp like zPRO OCCURS 0 WITH HEADER LINE,
wa_alv_zcdoctlacc3_temp TYPE zPRO,
it_alv_zcdoctlacc4_temp like ZCTOCOSTOS OCCURS 0 WITH HEADER LINE,
wa_alv_zcdoctlacc4_temp TYPE ZCTOCOSTOS.
try.
clear: it_alv_zcdoctlacc_temp.
clear: it_alv_zcdoctlacc1_temp.
clear: it_alv_zcdoctlacc2_temp.
clear: it_alv_zcdoctlacc3_temp.

** datos anteriores = a nuevos

it_alv_zcdoctlacc_old[] = it_alv_zcdoctlacc[].


LOOP AT it_alv_zcdoctlacc INTO wa_alv_zcdoctlacc.
MOVE-CORRESPONDING:
wa_alv_zcdoctlacc TO wa_alv_zcdoctlacc_temp,
wa_alv_zcdoctlacc TO wa_alv_zcdoctlacc1_temp,
wa_alv_zcdoctlacc TO wa_alv_zcdoctlacc2_temp,
wa_alv_zcdoctlacc TO wa_alv_zcdoctlacc3_temp,
wa_alv_zcdoctlacc TO wa_alv_zcdoctlacc4_temp.
IF NOT wa_alv_zcdoctlacc_temp IS INITIAL.
APPEND wa_alv_zcdoctlacc_temp TO it_alv_zcdoctlacc_temp.
APPEND wa_alv_zcdoctlacc1_temp TO it_alv_zcdoctlacc1_temp.
APPEND wa_alv_zcdoctlacc2_temp TO it_alv_zcdoctlacc2_temp.
APPEND wa_alv_zcdoctlacc3_temp TO it_alv_zcdoctlacc3_temp.
APPEND wa_alv_zcdoctlacc4_temp TO it_alv_zcdoctlacc4_temp.
clear: wa_alv_zcdoctlacc_temp.
clear: wa_alv_zcdoctlacc1_temp.
clear: wa_alv_zcdoctlacc2_temp.
clear: wa_alv_zcdoctlacc3_temp.
clear: wa_alv_zcdoctlacc4_temp.

MODIFY zop3acciones FROM TABLE it_alv_zcdoctlacc_temp[].
MODIFY zop3dndp FROM TABLE it_alv_zcdoctlacc1_temp.
MODIFY zop3ndp FROM TABLE it_alv_zcdoctlacc2_temp.
MODIFY zPRO FROM TABLE it_alv_zcdoctlacc3_temp.
MODIFY ZCTOCOSTOS FROM TABLE it_alv_zcdoctlacc4_temp.
ENDIF.
ENDLOOP.
clear: it_alv_zcdoctlacc.
clear: it_alv_zcdoctlacc_temp.
clear: it_alv_zcdoctlacc1_temp.
clear: it_alv_zcdoctlacc2_temp.
clear: it_alv_zcdoctlacc3_temp.
clear: it_alv_zcdoctlacc4_temp.
ENDTRY.
ENDFORM.

*-----------------

Ojala puedan ayudarme.
Gracias