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.
|