*& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zzy_sales_external_subroutine 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. PERFORM design_header IN PROGRAM zzy_sales_internal_subroutine IF FOUND. START-OF-SELECTION. PERFORM header_data IN PROGRAM zzy_sales_internal_subroutine CHANGING it_vbak IF FOUND. IF it_vbak[] IS NOT INITIAL. PERFORM join_data IN PROGRAM zzy_sales_internal_subroutine USING it_vbak CHANGING it_vbap it_final IF FOUND. 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. PERFORM display_data IN PROGRAM zzy_sales_internal_subroutine USING it_final CHANGING v_count IF FOUND. IF it_final[] IS NOT INITIAL. * MESSAGE 'Report Displayed Successfully' TYPE 'S'. MESSAGE s002 WITH v_count. "(zzy_msg). ENDIF.