SoloCodigo
Programación General => ABAP => Mensaje iniciado por: aladino_01 en Miércoles 6 de Agosto de 2008, 15:43
-
Hola a todos, necesito borrar algunas lineas de mi tabla interna pero no sé como hacerlo, por favor quién puede ayudarme.
En la tabla tengo los siguientes datos:
Num. Folio Destino Fecha Movimiento Tipo Material
1 M0025 R20105 29.07.2008 621 273.442-1R
2 M0025 R20105 30.07.2008 622 273.442-1R
3 M0025 R20105 01.08.2008 621 273.442-1R
4 P0040 R20105 24.07.2008 621 273.441-1R]
5 R0011 R20108 27.07.2008 621 273.441-2R
6 R0011 R20108 30.07.2008 622 273.441-2R
7 R0011 R20108 01.08.2008 621 273.441-2R
Lo que quiero borrar son los 2 primeros del folio M0025 ya que el movimiento 621 significa salida y el 622 significa retorno, entonces la línea 3 significa que hay salida más no hay retorno y no quiero que se borre, por ejemplo la línea 4 existe salida pero no retorno, que no se borre, en las líneas 5, 6, y 7 aplica la misma regla de las 3 lineas de ariiba.
Por su ayuda muchas gracias.
-
No se si entendí bien.
Si deseas que tu tabla te queda mas o menos así:
Num. Folio Destino Fecha Movimiento Tipo Material
3 M0025 R20105 01.08.2008 621 273.442-1R
4 P0040 R20105 24.07.2008 621 273.441-1R]
7 R0011 R20108 01.08.2008 621 273.441-2R
Podrías hacer un Loop At, almacenar las llaves en variables y borrar a partir de ellas:
LOOP AT TablaInterna WHERE Movimiento = '621'.
Var1 = tablainterna-numero.
var2=tablainterna-folio.
"Busca en la tabla interna por ese folio pero con movimiento 622
DELETE TablaInterna WHERE numero = var1
AND folio = var2
AND movimiento = '622'.
"Si encontró un movimiento 622 con ese folio, entonces debes borrar tambien el 621
IF SY-SUBRC = 0.
DELETE tablainterna WHERE numero = var1
AND folio = var2
AND movimiento = '621'.
ENDIF.
MODIFY tablainterna.
ENDLOOP.
Codigo sin garantía... jajaj, no tengo un FrontEnd a la mano...
Espero no haberte hecho perder el tiempo, si es que esto no te sirve de nada... talvez no he comprendido bien tu idea... y pues estaría bien un poco mas de información. Creo que si en dado caso te entendí bien la idea, el codigo necesitará algo mas que eso... la verdad no recuerdo bien como va el delete -_-
Salu2.
-
Gracias por tu ayuda, con el código que me has indicado ha salido perfecto, claro haciendo la minima correccion al mismo en cuestión del nombre dde la tabla interna y declarando los campos de VAR1 y VAR2.
Nuevamente muchas gracias.
Saludos.!!