*&---------------------------------------------------------------------*
*& Report ZFOR_ALL_ENTRYS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zfor_all_entrys NO STANDARD PAGE HEADING.
TYPES : BEGIN OF ty_likp,
vbeln TYPE vbeln_vl,
ernam TYPE ernam,
erdat TYPE erdat,
kunnr TYPE kunnr,
kunag TYPE kunag,
END OF ty_likp.
TYPES : BEGIN OF ty_lips,
vbeln TYPE vbeln_vl,
posnr TYPE posnr_vl,
pstyv TYPE pstyv_vl,
matnr TYPE matnr,
charg TYPE charg_d,
meins TYPE meins,
END OF ty_lips.
DATA : it_likp TYPE TABLE OF ty_likp,
it_lips TYPE TABLE OF ty_lips.
DATA : wa_likp TYPE ty_likp,
wa_lips TYPE ty_lips.
IF sy-subrc IS INITIAL.
SELECT vbeln
ernam
erdat
kunnr
kunag FROM likp
INTO TABLE it_likp
WHERE ernam = 'bollinger'.
IF sy-subrc IS INITIAL.
SELECT vbeln
posnr
pstyv
matnr
charg
meins FROM lips
INTO TABLE it_lips
FOR ALL ENTRIES IN it_likp
WHERE vbeln = it_likp-vbeln.
IF sy-subrc IS INITIAL.
LOOP AT it_likp INTO wa_likp.
LOOP AT it_lips INTO wa_lips WHERE vbeln = wa_likp-vbeln.
WRITE : wa_likp-vbeln,
wa_likp-erdat,
wa_likp-ernam,
wa_likp-kunnr,
wa_likp-kunag,
wa_lips-posnr,
wa_lips-pstyv,
wa_lips-matnr,
wa_lips-charg,
wa_lips-meins.
ENDLOOP.
ENDLOOP.
ENDIF.
每个IF
语句都需要一个ENDIF
。每个IF sy-subrc IS INITIAL.
都必须关闭ENDIF
。
我认为正确的代码如下。
IF sy-subrc IS INITIAL.
SELECT vbeln
ernam
erdat
kunnr
kunag FROM likp
INTO TABLE it_likp
WHERE ernam = 'bollinger'.
ENDIF.
IF sy-subrc IS INITIAL.
SELECT vbeln
posnr
pstyv
matnr
charg
meins FROM lips
INTO TABLE it_lips
FOR ALL ENTRIES IN it_likp
WHERE vbeln = it_likp-vbeln.
ENDIF.
IF sy-subrc IS INITIAL.
LOOP AT it_likp INTO wa_likp.
LOOP AT it_lips INTO wa_lips WHERE vbeln = wa_likp-vbeln.
WRITE: wa_likp-vbeln,
wa_likp-erdat,
wa_likp-ernam,
wa_likp-kunnr,
wa_likp-kunag,
wa_lips-posnr,
wa_lips-pstyv,
wa_lips-matnr,
wa_lips-charg,
wa_lips-meins.
ENDLOOP.
ENDLOOP.
ENDIF.