You are on page 1of 2

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

*& Report ZZY_SALES_EXTERNAL_SUBROUTINE


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

You might also like