下面是我写的例子代码,希望能够对你有帮助,请在你的环境下编译执行一下,有问题的话,请联络
*&---------------------------------------------------------------------*
*& Report YYZGMMB0005
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YYZGMMB0005.
TYPES:
BEGIN OF G_TYP_EKES_MSEG,
EBELN TYPE EKES-EBELN,
EBELP TYPE EKES-EBELP,
EINDT TYPE EKES-EINDT,
ERDAT TYPE EKES-ERDAT,
MENGE TYPE EKES-MENGE,
DABMG TYPE EKES-DABMG,
EBELN_M TYPE MSEG-EBELN,
EBELP_M TYPE MSEG-EBELP,
PBAMG TYPE MSEG-PBAMG,
MEINS TYPE MSEG-MEINS,
SHKZG TYPE MSEG-SHKZG,
MATNR TYPE MSEG-MATNR,
MBLNR TYPE MSEG-MBLNR,
ZEILE TYPE MSEG-ZEILE,
BWART TYPE MSEG-BWART,
HSDAT TYPE MSEG-HSDAT,
END OF G_TYP_EKES_MSEG,
G_TYP_TAB__EKES_MSEG TYPE STANDARD TABLE OF G_TYP_EKES_MSEG.
START-OF-SELECTION.
PERFORM F_MAIN_PROCESS.
FORM F_MAIN_PROCESS.
DATA :
L_WRK_INDEX TYPE I,
L_REC_EKES TYPE EKES,
L_REC_MSEG TYPE MSEG,
L_REC_EKES_MSEG TYPE G_TYP_EKES_MSEG,
L_TAB_EKES TYPE STANDARD TABLE OF EKES,
L_TAB_MSEG TYPE STANDARD TABLE OF MSEG,
L_TAB_EKES_MSEG TYPE G_TYP_TAB__EKES_MSEG.
SELECT *
FROM EKES
INTO TABLE L_TAB_EKES.
SORT L_TAB_EKES BY EBELN ASCENDING EBELP ASCENDING.
SELECT *
FROM MSEG
INTO TABLE L_TAB_MSEG.
SORT L_TAB_MSEG BY EBELN ASCENDING EBELP ASCENDING.
LOOP AT L_TAB_EKES INTO L_REC_EKES.
CLEAR:L_WRK_INDEX.
READ TABLE L_TAB_MSEG TRANSPORTING NO FIELDS
WITH KEY EBELN = L_REC_EKES-EBELN
EBELP = L_REC_EKES-EBELP
BINARY SEARCH.
IF SY-SUBRC = 0.
L_WRK_INDEX = SY-TABIX.
LOOP AT L_TAB_MSEG INTO L_REC_MSEG FROM L_WRK_INDEX.
IF L_REC_MSEG-EBELN = L_REC_EKES-EBELN AND
L_REC_MSEG-EBELP = L_REC_EKES-EBELP.
CLEAR:
L_REC_EKES_MSEG.
MOVE-CORRESPONDING L_REC_EKES TO L_REC_EKES_MSEG.
MOVE-CORRESPONDING L_REC_MSEG TO L_REC_EKES_MSEG.
L_REC_EKES_MSEG-EBELN_M = L_REC_EKES-EBELN.
L_REC_EKES_MSEG-EBELP_M = L_REC_EKES-EBELP.
APPEND L_REC_EKES_MSEG TO L_TAB_EKES_MSEG.
ENDIF.
ENDLOOP.
ELSE.
CLEAR:
L_REC_EKES_MSEG.
MOVE-CORRESPONDING L_REC_EKES TO L_REC_EKES_MSEG.
APPEND L_REC_EKES_MSEG TO L_TAB_EKES_MSEG.
ENDIF.
ENDLOOP.
ENDFORM.