ABAP 一对多数据

2024-11-23 07:55:47
推荐回答(3个)
回答1:

业务上是EBAN中一条对EKPO中多条数据,所以你的代码可以这样写
FORM GET_DATA.

SELECT LFDAT BANFN BADAT MENGE WERKS
FROM EBAN
INTO CORRESPONDING FIELDS OF TABLE IT_HEADER
WHERE WERKS IN Z_WERKS.

IF IT_HEADER[] IS NOT INITIAL.
SELECT *
FROM EKPO
INTO CORRESPONDING FIELDS OF IT_EKPO
FOR ALL ENTRIES IN IT_HEADER
WHERE BANFN = IT_HEADER-BANFN.

ENDIF.

LOOP AT IT_EKPO INTO IW_EKPO.
...这里就是所有需要的数据
ENDLOOP.

ENDFORM.

回答2:

因为是选择的多条数据。那么LOOP AT的时候就是从第一条开始读数据
所以LOOP AT中间就可以直接知道每一条的数据内容
比如

WERITE: WA_HEADER-BANFA

就是把选择到的每一个采购申请号显示出来。结果可能如
4500000001
4500000002
。。。

回答3:

加上项目编号EBAN-BNFPO = EKPO-EBELP