*& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* 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 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------*