Ver Mensaje Individual
  #1  
Viejo 02/03/09, 15:03:54
miguel.esteban.martin miguel.esteban.martin is offline
Member
 
Fecha de Ingreso: ene 2009
Mensajes: 89
AYUDA URGENTE borrar lineas tabla interna

Tengo un alv y borro los registros seleccionados.
si solo selecciono un registro me lo borra bien, si selecciono dos o mas solo me borra uno.

os pongo mi codigo:

CLEAR lt_rows.
REFRESH lt_rows.

CALL METHOD g_grid2->get_selected_rows
IMPORTING
et_index_rows = lt_rows.

CALL METHOD cl_gui_cfw=>flush.
IF lt_rows IS NOT INITIAL.
CLEAR i_pos[].
REFRESH i_pos.
LOOP AT lt_rows INTO ls_selected_line.

READ TABLE i_pos_bulto INTO lw_posiciones
INDEX ls_selected_line-index TRANSPORTING ALL FIELDS.

MOVE-CORRESPONDING lw_posiciones TO i_pos.

APPEND i_pos.

ENDLOOP.


sort i_pos by bulto equnr.
sort i_pos_bulto by bulto equnr.

IF i_pos IS NOT INITIAL.
LOOP AT i_pos_bulto.
READ TABLE i_pos INTO borra_linea.
check sy-subrc = '0'.
DELETE i_pos_bulto WHERE bulto = borra_linea-bulto AND equnr =
borra_linea-equnr.
ENDLOOP.
ENDIF.


________________________________________----

En i_pos guardo las lineas que he seleccionado en el alv.
i_pos_bulto es mi tabla interna.

He debugueado el programa y depues de los sort a las dos tablas los datos son correctos y bien ordenados, cuando da el problema es en el loop que no compriueba la primera posicion con la primera y no se porqeu

me podeis echar una mano.
Responder Con Cita