TABLES: VBAK.
*CRIANDO ESTRUTURA
TYPES: BEGIN OF TY_TESTE,
VBELN_VBAK TYPE
ERDAT_VBAK TYPE
ERZET_VBAK TYPE
VKGRP_VBAK TYPE
END OF TY_TESTE,
VBAK-vbeln,
VBAK-erdat,
VBAK-erzet,
VBAK-vkgrp,
BEGIN OF TY_TESTE1,
VBELN_VBEP TYPE
POSNR_VBEP TYPE
ETENR_VBEP TYPE
ETTYP_VBEP TYPE
END OF TY_TESTE1.
VBEP-vbeln,
VBEP-posnr,
VBEP-etenr,
VBEP-ettyp,
*CRIANDO TABELA INTERNA COM A ESTRUTURA ACIMA.
DATA: T_TESTE TYPE TABLE OF TY_TESTE,
T_TESTE1 TYPE TABLE OF TY_TESTE1.
*CRIANDO WORK-AREA
DATA: WA_TESTE TYPE TY_TESTE,
WA_TESTE1 TYPE TY_TESTE1.
*CRIAÇÃO DE RANGE
RANGES R_TESTE FOR VBAK-VBELN.
*CRIAÇÃO DE TELA.
SELECTION-SCREEN BEGIN OF
SELECT-OPTIONS: S_BELN
S_ERDAT
SELECTION-SCREEN END OF
BLOCK BTELA WITH FRAME TITLE TEXT-001.
FOR VBAK-vbeln,
FOR VBAK-ERDAT NO-EXTENSION NO INTERVALS.
BLOCK BTELA.
START-OF-SELECTION.
PERFORM: F_SELECIONA_DADOS,
F_PROCESSA_DADOS,
F_EXIBE_DADOS.
END-OF-SELECTION.
FORM F_SELECIONA_DADOS.
CLEAR: T_TESTE,
T_TESTE1.
SELECT VBELN
ERDAT
ERZET
VKGRP
FROM VBAK
INTO TABLE T_TESTE
WHERE VBELN IN S_BELN
AND ERDAT IN S_ERDAT.
SORT T_TESTE BY VBELN_VBAK.
CLEAR: R_TESTE-option,
R_TESTE-low,
R_TESTE-sign.
*ESTRUTURA DO RANGE (COMO MONTAR)
LOOP AT T_TESTE INTO WA_TESTE.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
R_TESTE-SIGN = 'S'.
R_TESTE-OPTION = 'EQ'.
R_TESTE-LOW
= WA_TESTE-VBELN_VBAK.
MOVE: wa_teste-vbeln_vbak TO r_teste-low,
'I'
TO r_teste-sign,
'EQ' TO r_teste-option.
APPEND r_teste.
CLEAR: R_TESTE-option,
R_TESTE-low,
R_TESTE-sign,
wa_teste.
ENDLOOP.
*FIM DO RANGE
IF T_TESTE IS INITIAL.
WRITE 'NÃO FOI ENCONTRADO DADOS'.
ELSE.
*
SELECT vbeln
*
posnr
*
etenr
*
ettyp
*
FROM VBEP
*
INTO TABLE T_TESTE1
**for all entries = percorre a tabela interna, e faz uma nova busca com base no
s dados contidos nessa tabela.
*
FOR ALL ENTRIES IN T_TESTE
*
WHERE VBELN EQ T_TESTE-VBELN_VBAK.
SELECT vbeln
posnr
etenr
ettyp
FROM VBEP
INTO TABLE T_TESTE1
WHERE VBELN in R_TESTE.
IF T_TESTE1 IS INITIAL.
WRITE 'NÃO FOI ENCONTRADO DADOS'.
ENDIF.
ENDIF.
ENDFORM.
FORM F_PROCESSA_DADOS.
WRITE: / 'DOC.VENDA',
'ITEM',
'MATERIAL',
'MAT_ENTRADA'.
LOOP AT T_TESTE INTO WA_TESTE.
LOOP AT T_TESTE1 INTO WA_TESTE1 WHERE VBELN_VBEP EQ WA_TESTE-VBELN_VBAK.
WRITE: / WA_TESTE-vbeln_VBAK,
WA_TESTE-erdat_VBAK,
WA_TESTE-erzet_VBAK,
WA_TESTE-vkgrp_VBAK,
WA_TESTE1-vbeln_VBEP,