Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

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

*& Report ZZZY_SALES_REPORT


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zzy_sales_report LINE-COUNT 20(4) LINE-SIZE 300
MESSAGE-ID zzy_msg.
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,
v_count TYPE i.
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 vbeln = '00000049XX'.
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.
ELSE.
* MESSAGE 'Item Data Not Found' TYPE 'I'.
MESSAGE i001. "(zzy_msg).
LEAVE LIST-PROCESSING.
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
ELSE.
* MESSAGE 'Header Data Not Found' TYPE 'I'.
* MESSAGE i000. "(zzy_msg).
MESSAGE i398(00) WITH 'Header Data Not Found'.
LEAVE LIST-PROCESSING.
ENDIF.
END-OF-PAGE.
WRITE: /1(10) 'PAGE :' COLOR 3, sy-pagno.
END-OF-SELECTION.
LOOP AT it_final INTO wa_final.
v_count = v_count + 1.
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.
IF it_final[] IS NOT INITIAL.
* MESSAGE 'Report Displayed Successfully' TYPE 'S'.
MESSAGE s002 WITH v_count. "(zzy_msg).
ENDIF.

You might also like