Vous êtes sur la page 1sur 3

*&---------------------------------------------------------------------*

*& Report ZALV_PO


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZALV_PO LINE-SIZE 160.
TABLES:EKKO,EKPO.
TYPES: BEGIN OF TY_EKKO,
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
BSART TYPE EKKO-BSART,
LIFNR TYPE EKKO-LIFNR,
EKORG TYPE EKKO-EKORG,
EKGRP TYPE EKKO-EKGRP,
END OF TY_EKKO.
TYPES: BEGIN OF TY_EKPO,
EBELN TYPE EKPO-EBELN,
MATNR TYPE EKPO-MATNR,
WERKS TYPE EKPO-WERKS,
LGORT TYPE EKPO-LGORT,
MATKL TYPE EKPO-MATKL,
MENGE TYPE EKPO-MENGE,
END OF TY_EKPO.
TYPES: BEGIN OF TY_FINAL,
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
BSART TYPE EKKO-BSART,
LIFNR TYPE EKKO-LIFNR,
EKORG TYPE EKKO-EKORG,
EKGRP TYPE EKKO-EKGRP,
WAERS TYPE EKKO-WAERS,
MATNR TYPE EKPO-MATNR,
WERKS TYPE EKPO-WERKS,
LGORT TYPE EKPO-LGORT,
MATKL TYPE EKPO-MATKL,
MENGE TYPE EKPO-MENGE,
END OF TY_FINAL.
DATA:IT_EKKO TYPE TABLE OF TY_EKKO,
WA_EKKO LIKE LINE OF IT_EKKO.
DATA:IT_EKPO TYPE TABLE OF TY_EKPO,
WA_EKPO LIKE LINE OF IT_EKPO.
DATA:IT_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL LIKE LINE OF IT_FINAL.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TXT.
SELECT-OPTIONS:Purchase FOR EKKO-EBELN DEFAULT '1'.
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
TXT = 'Purchase Details'.
START-OF-SELECTION.
PERFORM FETCH_DATA.
PERFORM DISPLAY_DATA.
*&---------------------------------------------------------------------*
*& Form FETCH_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_DATA .
SELECT EBELN BUKRS BSART LIFNR EKORG EKGRP
FROM EKKO
INTO TABLE IT_EKKO
WHERE EBELN IN Purchase.
SELECT EBELN MATNR WERKS LGORT MATKL MENGE
FROM EKPO
INTO TABLE IT_EKPO
FOR ALL ENTRIES IN IT_EKKO
WHERE EBELN = IT_EKKO-EBELN.
REFRESH IT_FINAL.
CLEAR WA_FINAL.
LOOP AT IT_EKKO INTO WA_EKKO.
READ TABLE IT_EKKO INTO WA_EKKO WITH KEY EBELN = WA_EKKO-EBELN.
WA_FINAL-EBELN = WA_EKKO-EBELN.
WA_FINAL-BUKRS = WA_EKKO-BUKRS.
WA_FINAL-BSART = WA_EKKO-BSART.
WA_FINAL-LIFNR = WA_EKKO-LIFNR.
WA_FINAL-EKORG = WA_EKKO-EKORG.
WA_FINAL-EKGRP = WA_EKKO-EKGRP.
LOOP AT IT_EKPO INTO WA_EKPO WHERE EBELN = WA_EKKO-EBELN.
WA_FINAL-MATNR = WA_EKPO-MATNR.
WA_FINAL-WERKS = WA_EKPO-WERKS.
WA_FINAL-LGORT = WA_EKPO-LGORT.
WA_FINAL-MATKL = WA_EKPO-MATKL.
WA_FINAL-MENGE = WA_EKPO-MENGE.
APPEND WA_FINAL TO IT_FINAL.
ENDLOOP.
ENDLOOP.
ENDFORM. " FETCH_DATA
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .
delete adjacent duplicates from it_final comparing all fields.
LOOP AT IT_FINAL INTO WA_FINAL.
AT FIRST.
WRITE:/ 'Pur_ord',
20 'Comp_code',
35 'Doc_type',
50 'Vendor',
65 'Pur_org',
75 'Pur_grp',
85 'Mat_no',
100 'Plant',
115 'Stor_loc',
130 'Mat_grp',
141 'Pur_quantity'.
ENDAT.
WRITE:/ WA_FINAL-EBELN,
20 WA_FINAL-BUKRS,
35 WA_FINAL-BSART,
50 WA_FINAL-LIFNR,
65 WA_FINAL-EKORG,
75 WA_FINAL-EKGRP,
85 WA_FINAL-MATNR,
100 WA_FINAL-WERKS,
115 WA_FINAL-LGORT,
130 WA_FINAL-MATKL,
136 WA_FINAL-MENGE.
ENDLOOP.
ENDFORM. " DISPLAY_DATA

Vous aimerez peut-être aussi