Вот в самом первом приближении:
Code:
report zpm_infmat no standard page heading.
tables: ekko, ekpo,
eina, eine.
data: begin of gt_infmat occurs 0,
matnr like ekpo-matnr, " Материал
infnr like eine-infnr, " Номер инфо-записи
ebeln like ekpo-ebeln, " Номер контракта
lifnr like ekko-lifnr, " Поставщик
netpr like ekpo-netpr, " Цена
waers like ekko-waers, " Валюта
end of gt_infmat.
select-options: s_matnr for ekpo-matnr.
start-of-selection.
perform read_ekko_ekpo.
perform read_eina_eine.
end-of-selection.
perform write_list.
*&---------------------------------------------------------------------*
*& Form read_ekko_ekpo
*&---------------------------------------------------------------------*
FORM read_ekko_ekpo .
select ekpo~matnr
ekpo~infnr
ekpo~ebeln
ekko~lifnr
ekpo~netpr
ekko~waers into table gt_infmat
from ekpo inner join ekko on ekko~ebeln = ekpo~ebeln
where ekpo~matnr in s_matnr
and ekpo~bstyp eq 'K'.
ENDFORM. " read_ekko_ekpo
*&---------------------------------------------------------------------*
*& Form read_eina_eine
*&---------------------------------------------------------------------*
FORM read_eina_eine .
select eina~matnr
eina~infnr
eina~lifnr
eine~netpr
eine~waers
appending corresponding fields of table gt_infmat
from eina inner join eine on eine~infnr = eina~infnr
where eina~matnr in s_matnr.
ENDFORM. " read_eina_eine
*&---------------------------------------------------------------------*
*& Form write_list
*&---------------------------------------------------------------------*
FORM write_list .
sort gt_infmat by matnr lifnr.
loop at gt_infmat.
write: / gt_infmat-matnr, " Материал
gt_infmat-infnr, " Номер инфо-записи
gt_infmat-ebeln, " Номер контракта
gt_infmat-lifnr, " Поставщик
gt_infmat-netpr, " Цена
gt_infmat-waers. " Валюта
endloop.
ENDFORM. " write_list