Академический Документы
Профессиональный Документы
Культура Документы
*&---------------------------------------------------------------------*
*& Report ZTRPSD110 *
*& *
*&---------------------------------------------------------------------*
* TITLE: Statement of Export Report for Tata Tetley *
* *
* PURPOSE:Statement of Export Report for Tata Tetley *
* *
*----------------------------------------------------------------------*
* A. Start-of-selection: *
* 1. In get_billing_data using the selection screen parameters get the *
* billing data from billing header(VBAK) and Item (VBAP) *
* 2. Get the SHIP-TO partner data from VBPA using Customer number
as *
* one condition and store in it_vbpa_sh
* 9. Popultae the ALV display table
*
* B. End-of-selection:
* Call screen 9000 and display data in ALV
*----------------------------------------------------------------------*
TABLES: vbrk.
* CONSTANTS
CONSTANTS :
c_x(1) TYPE c VALUE 'X',
c_zxto TYPE vbak-auart VALUE 'ZXTO',
c_e TYPE spras VALUE 'E',
c_000000 TYPE posnr VALUE '000000',
c_ship_to TYPE parvw VALUE 'WE'. "Ship To Party
* Table Types
TYPES: BEGIN OF ty_vbrk_vbrp,
vbeln TYPE vbrk-vbeln, "Billing doc
posnr TYPE vbrp-posnr, "Billing item
aubel TYPE vbrp-aubel, "Sales order
waerk TYPE vbrk-waerk, "Doc currency
mvgr1 TYPE vbrp-mvgr1, "Material group 1
mvgr3 TYPE vbrp-mvgr3, "Material group 3
mvgr4 TYPE vbrp-mvgr4, "Material group 4
matnr TYPE vbrp-matnr, "Material no
ntgew TYPE vbrp-ntgew, "Net wt
gewei TYPE vbrp-gewei, "Wt unit
kzwi1 TYPE vbrp-kzwi1, "Subtotal 1
kursk TYPE vbrp-kursk, "Exchange rate
END OF ty_vbrk_vbrp.
END OF ty_data.
DATA:
w_tot_ntgew_tea_bag TYPE vbrp-ntgew,
w_tot_ntgew_pkt_tea TYPE vbrp-ntgew,
w_tot_ntgew_bulk_tea TYPE vbrp-ntgew,
w_tot_ntgew_tot TYPE vbrp-ntgew,
w_tot_kzwi1_tea_bag TYPE vbrp-kzwi1,
w_tot_kzwi1_pkt_tea TYPE vbrp-kzwi1,
w_tot_kzwi1_bulk_tea TYPE vbrp-kzwi1,
w_tot_kzwi1_tot TYPE vbrp-kzwi1.
* ALV Grid
w_alv_grid TYPE REF TO cl_gui_alv_grid,
w_layo TYPE lvc_s_layo, "For layout
wt_fieldcat TYPE lvc_t_fcat, "For field catalog
okcode TYPE okcode, "OK Code
w_to(2) TYPE c,
w_title TYPE string.
* Process data
PERFORM process_data.
*&---------------------------------------------------------------------*
*& Form get_billing_data
*&---------------------------------------------------------------------*
* Get billing data from Delivery header(VBRK) and item (VBRP)
* & store in internal table it_vbrk_vbrp
*----------------------------------------------------------------------*
FORM get_billing_data .
REFRESH: it_vbrk_vbrp.
* Select Billing data by joining VBRK & VBRP and store in it_vbrk_vbrp
SELECT a~vbeln
b~posnr
b~aubel
a~waerk
b~mvgr1
b~mvgr3
b~mvgr4
b~matnr
b~ntgew
b~gewei
b~kzwi1
b~kursk
FROM vbrk AS a INNER JOIN vbrp AS b
ON a~vbeln = b~vbeln
INTO TABLE it_vbrk_vbrp
WHERE a~fkdat IN s_fkdat
* Consider only non-deleted document
AND fksto = space
* Billing doc type should be ZXTB
AND fkart = 'ZXTB'
IF sy-subrc <> 0.
MESSAGE i999(zttl) WITH 'No data is there'(m06).
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. " get_billing_data
*&---------------------------------------------------------------------*
*& Form get_ship_to_data
*&---------------------------------------------------------------------*
* Get Ship-To party data
*----------------------------------------------------------------------*
FORM get_ship_to_data .
IF sy-subrc <> 0.
MESSAGE i999(zttl) WITH 'Exporter country not maintained'(m02).
LEAVE LIST-PROCESSING.
ELSE.
SORT it_vbpa BY vbeln.
* Create an unique and sorted driver table
l_it_vbpa[] = it_vbpa[].
SORT l_it_vbpa BY land1.
DELETE ADJACENT DUPLICATES FROM l_it_vbpa COMPARING
land1.
ENDIF.
ENDFORM. " get_ship_to_data
*&---------------------------------------------------------------------*
*& Form get_material_group_3
*&---------------------------------------------------------------------*
* Get material group 3
*----------------------------------------------------------------------*
FORM get_material_group_3 .
REFRESH: it_tvm3t.
IF sy-subrc = 0.
SORT it_tvm3t BY mvgr3.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& Form get_material_group_4
*&---------------------------------------------------------------------*
* Get material group 4
*----------------------------------------------------------------------*
FORM get_material_group_4 .
DATA: l_it_vbrk_vbrp TYPE STANDARD TABLE OF ty_vbrk_vbrp.
REFRESH: it_tvm4t.
*&---------------------------------------------------------------------*
*& Form process_data
*&---------------------------------------------------------------------*
* Process the data and do summation and populate final display table
*----------------------------------------------------------------------*
FORM process_data .
*&---------------------------------------------------------------------*
*& Form populate_description
*&---------------------------------------------------------------------*
* Populate the description fields
*----------------------------------------------------------------------*
FORM populate_description .
wa_data-kzwi1_tot = wa_data-kzwi1_tea_bag
+ wa_data-kzwi1_pkt_tea
+ wa_data-kzwi1_bulk_tea.
MODIFY it_data FROM wa_data TRANSPORTING landx
bezei3
bezei4
ntgew_tot
kzwi1_tot.
* Summattion of grand totals
w_tot_ntgew_tea_bag = w_tot_ntgew_tea_bag + wa_data-
ntgew_tea_bag.
w_tot_ntgew_pkt_tea = w_tot_ntgew_pkt_tea + wa_data-
ntgew_pkt_tea.
w_tot_ntgew_bulk_tea = w_tot_ntgew_bulk_tea + wa_data-
ntgew_bulk_tea.
w_tot_ntgew_tot = w_tot_ntgew_tot + wa_data-ntgew_tot.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
* Initialise PF-STATUS and title
*----------------------------------------------------------------------*
MODULE status_9000 OUTPUT.
SET PF-STATUS 'MAIN9000'.
SET TITLEBAR 'TITLE_9000'.
ENDMODULE. " STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*& Module initialize_9000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE initialize_9000 OUTPUT.
* Call the ALV grid to display data
PERFORM display_alv_grid.
* Create the ALV grid object. The parent is the ALV container
CREATE OBJECT w_alv_grid
EXPORTING
i_parent = w_alv_container
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE e999(zttl) WITH 'Problem in ALV display'(t04).
ENDIF.
* Layout design
w_layo-no_toolbar = ''.
* Report title
* w_layo-grid_title = text-004.
w_layo-grid_title = w_title.
IF sy-subrc <> 0.
MESSAGE e999(zttl) WITH text-t04.
ENDIF.
ELSE.
* If the container & grid object is alreadt there reuse them
CALL METHOD w_alv_grid->refresh_table_display
EXCEPTIONS
finished = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e999(zttl) WITH text-t04.
ENDIF.
ENDIF.
IF okcode = 'CANCEL'.
EXIT.
ENDIF.
REFRESH: pt_fieldcat.
**List of fields to be displayed should be added in pt_fieldcat
* Customer PO no
CLEAR lx_fcat.
lx_fcat-fieldname = 'LANDX'.
lx_fcat-ref_field = 'T005T'.
lx_fcat-ref_table = 'T005T'.
lx_fcat-coltext = 'Market Name'(c01).
lx_fcat-seltext = text-c01.
* Flavour type
CLEAR lx_fcat.
lx_fcat-fieldname = 'BEZEI3'.
lx_fcat-ref_field = 'BEZEI'.
lx_fcat-ref_table = 'TVM3'.
lx_fcat-coltext = 'Flavour Type'(c02).
lx_fcat-seltext = text-c02.
APPEND lx_fcat TO pt_fieldcat.
* Tea type
CLEAR lx_fcat.
lx_fcat-fieldname = 'BEZEI4'.
lx_fcat-ref_field = 'BEZEI4'.
lx_fcat-ref_table = 'TVM4'.
lx_fcat-coltext = 'Tea Type.'(c03).
lx_fcat-seltext = text-c03.
APPEND lx_fcat TO pt_fieldcat.
* Total Quantity in MT
CLEAR lx_fcat.
lx_fcat-fieldname = 'NTGEW_TOT'.
lx_fcat-ref_field = 'NTGEW'.
lx_fcat-ref_table = 'VBRP'.
lx_fcat-coltext = 'Total(MT)'(c07).
lx_fcat-seltext = text-c07.
APPEND lx_fcat TO pt_fieldcat.
* Total amount
CLEAR lx_fcat.
lx_fcat-fieldname = 'KZWI1_TOT'.
lx_fcat-ref_field = 'KZWI1'.
lx_fcat-ref_table = 'VBRP'.
lx_fcat-coltext = 'Total(FOB-Lacs)'(c11).
lx_fcat-seltext = text-c11.
APPEND lx_fcat TO pt_fieldcat.
CLEAR l_date.
IF NOT s_fkdat-high IS INITIAL.
CONCATENATE s_fkdat-high+6(2) s_fkdat-high+4(2) s_fkdat-
high(4)
INTO l_date SEPARATED BY '/'.
CONCATENATE w_title 'to' l_date INTO w_title SEPARATED BY
space.
ENDIF.
ENDFORM. " form_title