Tema: Programa
Ver Mensaje Individual
  #5  
Viejo 17/05/12, 16:25:39
Mari.Sole Mari.Sole is offline
Senior Member
 
Fecha de Ingreso: nov 2010
Localización: Argentina
Mensajes: 121
Hola amam2605,
Ahora sí me queda más claro. Podríamos entonces hacer sl siguiente cambio al código que te pasé:

* Obtener los datos comerciales de los clientes

SELECT KUNNR VKORG VTWEG SPART
FROM KNVV
INTO TABLE TABLA1
WHERE VKORG EQ '1000'
AND ( VTWEG EQ '10' OR VTWEG EQ '11').

* Encontrar clientes con Sector (SPART) distinto a 67

LOOP TABLA1 INTO R_TABLA1.
IF R_TABLA1-SPART NE '67'.
MOVE R_TABLA1 -KUNNR TO R_TABLA3-KUNNR.
APPEND R_TABLA3 TO TABLA3.
CLEAR R_TABLA3.
ENDIF.
ENDLOOP.

* Eliminar clientes con Sector (SPART) distinto a 67

CLEAR D_INDEX.
LOOP TABLA1 INTO R_TABLA1.
D_INDEX = SY-TABIX.
READ TABLE TABLA3 INTO R_TABLA3 WITH KEY KUNNR = R_TABLA1-KUNNR.
IF SY-SUBRC IS INITIAL.
DELETE TABLA1 INDEX D_INDEX.
ENDIF.
ENDLOOP.


Luego continuaría con el resto del código donde obtiene a partir de la TABLA1 los nombres de los clientes, y por ultimo arma la tabla final a mostrar, ese código no debería sufrir ninguna modificación.
Se podrían ahorrar unos cuantos pasos volcando desde el comienzo todo a una tabla final y sólo ir modificando registros o eliminando pero traté de hacerlo así bien desglosado para que se entienda bien que se está haciendo.
Se puede optimizar muchísimo más sin problemas.
Espero te sea útil.
Responder Con Cita