Ver Mensaje Individual
  #6  
Viejo 25/10/13, 14:06:33
Duarco Duarco is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 54
En esta consulta:

SELECT vbak~vdatu
vbap~vbeln
vbap~werks
VBAP~MATNR "A estos materiales se les consultarán las listas de material
INTO TABLE gt_result
FROM vbap INNER JOIN vbak ON vbap~vbeln = vbak~vbeln
WHERE vdatu IN so_vdatu.

debes adicionar el material.

Luego podrías consultar la tabla MAST:

SELECT matnr
werks
stlan
stlnr
INTO TABLE lt_mast
FROM mast
FOR ALL ENTRIES IN gt_result
WHERE matnr EQ gt_result-matnr
AND werks EQ gt_result-werks.

Finalmente vas a la STPO para obtener los componentes de los materiales de VBAP.

SELECT stlnr
idnrk
meins
menge
INTO TABLE lt_stpo
FROM stpo
WHERE stlnr EQ lt_mast-stlnr. "STLNR es el ID de la lista de material.

Luego podrías recorrer la tabla gt_result e ir consultando con cada material/centro sus respectivos componentes.

LOOP AT GT_RESULT INTO LWA_RESULT.

READ TABLE LT_MAST INTO LWA_MAST
WITH KEY matnr = LWA_RESULT-matnr
werks = LWA_RESULT-werks.

IF sy-subrc EQ 0.

LOOP AT LT_STPO INTO LWA_STPO
WHERE stlnr EQ LWA_MAST-STLNR.

MOVE-CORRESPONDING LWA_RESULT TO LWA_IMPRIME_REPORTE.
LWA_IMPRIME_REPORTE-IDNRK = LWA_STPO-IDNRK. "Componente
APPEND LWA_IMPRIME_REPORTE INTO GT_IMPRIME_REPORTE.

ENDLOOP.

ENDIF.

ENDLOOP.

Al final GT_IMPRIME_REPORTE queda con los datos de materiales y sus componentes.
Responder Con Cita