Eliminar un registro de una tabla en un Loop

Buenos días muchachos, tengo una duda, es que estoy haciendo un report z, y necesito eliminar un registro de una tabla dentro del mismo loop de esa tabla, como lo puedo hacer???
gracias por su ayuda.

tienes ese codigo en un reporte en abap ??? no te da error ?? no lo veo del todo logico, me estan haciendo un poco de ruido los fiel symbols

yo creo que con unassing el lwa_vbrk, deberia funcionarte !!!

fijate, yo aprendi aqui !!! no sabia que se podia trabajar con los field de la forma que tu trabajaste…estoy probando y no me funciona

pero asi si funciona

DATA: lt_sflight TYPE TABLE OF sflight,
      ls_sflight TYPE sflight.

SELECT * FROM sflight INTO TABLE lt_sflight.

LOOP AT lt_sflight INTO ls_sflight.

  DELETE TABLE lt_sflight FROM ls_sflight.
ENDLOOP.

voy a seguir probando asi con los field a ver !!!

En el loop con el fiel symbol, lo que tiene mal es la palabra INTO.

LOOP at it_Dato assign

// aqui colocas el codigo para eliminar.
endloop.

Nota: como lo hace canuto tambien funciona.
Con esos datos resuelves ^^

@smota, fijate que asi como esta funciona jajajaja…osea sin el assign, con el into funcionada…hace el loop pero igual probe borrar y no funciona !! por eso dije que aprendi.

almuerzo y veo jajajaja porque me causo curiosidad

1 me gusta

muchas gracias a todos por sus valiosos aporte, si ya me funciona, les comparto el código con los fs

REPORT  y_hjs_ejercicio2.


DATA:
lt_vbrk TYPE STANDARD TABLE OF vbrk,
lwa_vbrk LIKE LINE OF lt_vbrk.

FIELD-SYMBOLS:
<lt_vbrk>  LIKE lt_vbrk,
<lwa_vbrk> LIKE lwa_vbrk.

SELECT * UP TO  5 ROWS
  FROM  vbrk
  INTO TABLE lt_vbrk.


ASSIGN lt_vbrk TO <lt_vbrk>.

break hsotelo.

*LOOP AT <lt_vbrk>  ASSIGNING  <lwa_vbrk>.
LOOP AT <lt_vbrk> INTO lwa_vbrk.

  DELETE <lt_vbrk>  INDEX 3 .
*  ASSIGN sy-datum TO <lwa_vbrk>-aedat.

  EXIT.

ENDLOOP.

perfecto !!! ahora, si lo tienes dentro de un loop, por que ponerle el index hard core ??? lo puedes hacer fuera de loop

Buenas noches! Me parece que ahi hay un par de cosas que mejorar…
Primero: Por que haces un LOOP AT… ASSIGNING y luego haces un LOOP AT …INTO…no le veo sentido uno de los 2 esta redundante…
Segundo: la sentencia DELETE ya tiene un condicional para marcarle que fila le queres borrar…lo mismo que arriba…redundante…

1 me gusta

Gracias por tu aporte, el primer loop, esta comentado, no se usa :grin:

1 me gusta

Para eliminar un registro de una tabla interna es tan facil como indicar a la instruccion DELETE el indice, les dejo el ejemplo.

DATA: L_TABIX TYPE SYTABIX.

LOOP AT ti_datos into wa_datos.
l_tabix = sy-tabix.

IF condicion.
DELETE ti_datos INDEX l_tabix.
ENDIF.

ENDLOOP.

5 Me gusta

Lograste tus objetivos? aqui te han dado buen material para lograr el requerimiento…
No olvides marcar una respuesta y asi continuamos con el dia a dia. ^^

2 Me gusta

Ah bueno, no sabia, si claro lo logre, mil gracias a todos!!!.

2 Me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.