You are on page 1of 3

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

*& Report ZZZY_SALES_REPORT


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zzy_sales_report LINE-COUNT 20(4) LINE-SIZE 300.
TYPES: BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln, "Sales Document
posnr TYPE vbap-posnr, "Line Item Number
matnr TYPE vbap-matnr, "Material
kwmeng TYPE vbap-kwmeng, "Quantity
netwr TYPE vbap-netwr, "Unit Price
tot_pr TYPE vbap-netwr, "Total Price
END OF ty_vbap,
BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
ernam TYPE vbak-ernam,
END OF ty_vbak,
BEGIN OF ty_final,
vbeln TYPE vbap-vbeln, "Sales Document
posnr TYPE vbap-posnr, "Line Item Number
matnr TYPE vbap-matnr, "Material
kwmeng TYPE vbap-kwmeng, "Quantity
netwr TYPE vbap-netwr, "Unit Price
tot_pr TYPE vbap-netwr, "Total Price
erdat TYPE vbak-erdat, "Date
ernam TYPE vbak-ernam, "Person
END OF ty_final.
TYPES: ty_t_vbap TYPE STANDARD TABLE OF ty_vbap,
* ty_t_vbak TYPE STANDARD TABLE OF ty_vbak,
ty_t_vbak TYPE SORTED TABLE OF ty_vbak
WITH NON-UNIQUE KEY vbeln,
ty_t_final TYPE STANDARD TABLE OF ty_final.
DATA: it_vbap TYPE ty_t_vbap,
it_vbak TYPE ty_t_vbak,
it_final TYPE ty_t_final,
wa_vbap TYPE ty_vbap,
wa_vbak TYPE ty_vbak,
wa_final TYPE ty_final.
TOP-OF-PAGE.
WRITE: /1(10) 'REPORT :' COLOR 4, sy-repid.
WRITE: /1(10) 'DATE :' COLOR 4, sy-datum.
WRITE: /1(10) 'TIME :' COLOR 4, sy-uzeit.
WRITE: /1(20) 'SALES DOCUMENT LIST REPORT' COLOR 4.
SKIP 1.
WRITE: /1(10) 'S.O. No.' COLOR 6,
13(10) 'Items' COLOR 6,
26(20) 'Material' COLOR 6,
48(20) 'Quantity' COLOR 6,
70(15) 'Unit Price' COLOR 6,
88(20) 'Total Price' COLOR 6,
112(10) 'Date' COLOR 6,
125(10) 'Person' COLOR 6.
START-OF-SELECTION.
SELECT vbeln
erdat
ernam FROM vbak INTO TABLE it_vbak
WHERE vbtyp = 'C'.
IF it_vbak[] IS NOT INITIAL.
* SORT it_vbak BY vbeln.
SELECT vbeln
posnr
matnr
kwmeng
netwr
FROM vbap INTO TABLE it_vbap
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln. "Joining Condition
IF sy-subrc = 0.
LOOP AT it_vbap INTO wa_vbap.
wa_vbap-tot_pr = wa_vbap-kwmeng * wa_vbap-netwr.
MODIFY it_vbap FROM wa_vbap TRANSPORTING tot_pr.
ENDLOOP.
ENDIF.
*Program Join Begins
LOOP AT it_vbap INTO wa_vbap.
wa_final-vbeln = wa_vbap-vbeln.
wa_final-posnr = wa_vbap-posnr.
wa_final-matnr = wa_vbap-matnr.
wa_final-kwmeng = wa_vbap-kwmeng.
wa_final-netwr = wa_vbap-netwr.
wa_final-tot_pr = wa_vbap-tot_pr.
READ TABLE it_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln.
* BINARY SEARCH.
IF sy-subrc = 0.
wa_final-erdat = wa_vbak-erdat.
wa_final-ernam = wa_vbak-ernam.
ENDIF.
APPEND wa_final TO it_final.
ENDLOOP.
*Program Join Ends
ENDIF.
END-OF-PAGE.
WRITE: /1(10) 'PAGE :' COLOR 3, sy-pagno.
END-OF-SELECTION.
LOOP AT it_final INTO wa_final.
WRITE: /1(10) wa_final-vbeln,
13(10) wa_final-posnr,
26(20) wa_final-matnr,
48(20) wa_final-kwmeng,
70(15) wa_final-netwr,
88(20) wa_final-tot_pr,
112(10) wa_final-erdat,
125(10) wa_final-ernam.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Report ZZZY_SALES_REPORT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

You might also like