SELECT MONAT
BELNR
GJAHR
BUKRS
FROM BKPF
INTO TABLE TAB_TEMP2
WHERE MONAT IN S_MONAT
AND BELNR IN S_BELNR
AND GJAHR = P_GJAHR.
SORT TAB_TEMP2 BY GJAHR BELNR.
IF TAB_TEMP2[] IS NOT INITIAL.
SELECT SHKZG
PRCTR
PROJK
DMBTR
KOSTL
MATNR
EBELP
EBELN
BUKRS
HKONT
BELNR
GJAHR
BUZEI
FROM BSEG
INTO CORRESPONDING FIELDS OF TABLE TAB_OUT
FOR ALL ENTRIES IN TAB_TEMP2
WHERE GJAHR = TAB_TEMP2-GJAHR
AND BUKRS = TAB_TEMP2-BUKRS
AND BELNR = TAB_TEMP2-BELNR.
SORT TAB_OUT BY GJAHR BELNR.
LOOP AT TAB_OUT INTO REC_OUT.
READ TABLE TAB_TEMP2 WITH KEY BELNR = TAB_TEMP2-BELNR GJAHR = TAB_TEMP2-GJAHR BUKRS = TAB_TEMP2-BUKRS.
IF SY-SUBRC = 0.
REC_OUT-MONAT = TAB_TEMP2-MONAT.
MODIFY TAB_OUT FROM REC_OUT.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM.
这样对吗
SELECT MONAT
BELNR
GJAHR
BUKRS
FROM BKPF
INTO TABLE TAB_TEMP2
WHERE MONAT IN S_MONAT
AND BELNR IN S_BELNR
AND GJAHR = P_GJAHR.
SORT TAB_TEMP2 BY GJAHR BELNR.
IF TAB_TEMP2[] IS NOT INITIAL.
SELECT SHKZG
PRCTR
PROJK
DMBTR
KOSTL
MATNR
EBELP
EBELN
BUKRS
HKONT
BELNR
GJAHR
BUZEI
FROM BSEG
INTO CORRESPONDING FIELDS OF TABLE TAB_OUT
FOR ALL ENTRIES IN TAB_TEMP2
WHERE GJAHR = TAB_TEMP2-GJAHR
AND BUKRS = TAB_TEMP2-BUKRS
AND BELNR = TAB_TEMP2-BELNR.
SORT TAB_OUT BY GJAHR BELNR BUKRS.
LOOP AT TAB_OUT INTO REC_OUT.
READ TABLE TAB_TEMP2 WITH KEY BELNR = REC_OUT-BELNR GJAHR = REC_OUT-GJAHR BUKRS = REC_OUT-BUKRS.
IF SY-SUBRC = 0.
REC_OUT-MONAT = TAB_TEMP2-MONAT.
MODIFY TAB_OUT FROM REC_OUT.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM.