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
|