Sale Report

You might also like

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

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

*& Report YBSSALE


*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YBSSALE.
**&---------------------------------------------------------------------*
*& Report YPLANTSALE
*& Purpose:-- Plant Wise Sales Report Which Should Match With Balance Sheet.
*& Functional Analyst:-- Mr. Suresh Yadev.
*& Developed By:-- Mr. Manish Prakash.
*& Developed On:-- 24 Jan 2009.
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

*REPORT YPLANTSALE2.
*************************Table
Decleration******************************************************************
tables: vbrk, vbrp, mara.
data: gs_variant type disvariant.
***********************************************************************************
*************************

***************************************DATA
Decleration*******************************************************

class event_class definition deferred.


data: begin of tab,
werks type vbrp-werks,
shkzg type vbrp-shkzg,
kzwi1 type vbrp-kzwi1,
end of tab.
data: itab like standard table of tab with header line.

data: begin of tab1,


werks type vbrp-werks,
shkzg type vbrp-shkzg,
kzwi1 type vbrp-kzwi1,
fkart type vbrk-fkart,
kalsm type vbrk-kalsm,
kdgrd type vbrk-ktgrd,
kzwi1s type vbrp-kzwi1,
kzwi1r type vbrp-kzwi1,
kzwi1dm type vbrp-kzwi1,
kzwi1cm type vbrp-kzwi1,
total type vbrp-kzwi1,
regio TYPE kna1-regio,
BEZEi TYPE T005U-BEZEi,
end of tab1.
data: main like standard table of tab1 with header line .
data: temp1 like standard table of tab1 with header line.
data: dc like standard table of tab1 with header line.
data: t001 like standard table of tab1 with header line.
DATA: it_kukla like STANDARD TABLE OF t001w WITH HEADER LINE.
DATA: it_T005U like STANDARD TABLE OF T005U WITH HEADER LINE.
data : ty_lay1 type lvc_s_layo,
it_fieldcat type lvc_t_fcat ,
ty_fieldcat type lvc_s_fcat ,
c_alv1 type ref to cl_gui_alv_grid,
c_cont1 type ref to cl_gui_custom_container,
event_receiver type ref to event_class.

***********************************************************************************
***************************

*************************************SELECTION
SCREEN********************************************************
selection-screen : begin of block radhey with frame title text-001.

select-options : fkdat for vbrk-fkdat.


select-options : werks for vbrp-werks.
select-options : mtart for mara-mtart .

selection-screen : end of block radhey.

***********************************************************************************
***************************
initialization.
*Start of selection event
start-of-selection.
*fetch data into table and field characteristics
perform fetch_data.
*ALV display for output
perform alv_output.
form fetch_data .
select werks from t001w into corresponding fields of table t001
WHERE vkorg = '7000'.

loop at t001 .
append t001 to main.
endloop.

select vbrp~werks vbrp~kzwi1 vbrp~shkzg from vbrp inner join vbrk on


vbrp~vbeln = vbrk~vbeln inner join mara on vbrp~matnr = mara~matnr
into corresponding fields of table itab where
mara~mtart in mtart
and vbrp~werks in werks and vbrk~fkdat in fkdat and ( vbrk~fkart = 'F2' ) and
vbrk~fksto <> 'X'.

loop at itab.
dc-werks = itab-werks.
* CASE itab-shkzg.
* WHEN 'S'.
dc-kzwi1 = itab-kzwi1.
* WHEN 'H'.
* dc-kzwi1 = - ( itab-kzwi1 ).
* ENDCASE.
collect dc.
clear dc-kzwi1.
endloop.
*main[] = dc[].
loop at main .
read table dc with key werks = main-werks.
main-kzwi1 = dc-kzwi1.
modify main transporting kzwi1.
clear dc-kzwi1.
endloop.

loop at main .
temp1-werks = main-werks.
temp1-kzwi1 = main-kzwi1.
append temp1.
endloop.

sort temp1 by werks.


sort main by werks.

refresh: itab, dc.

select vbrp~werks vbrp~kzwi1 vbrp~shkzg from vbrp inner join vbrk on


vbrp~vbeln = vbrk~vbeln inner join mara on vbrp~matnr = mara~matnr
into corresponding fields of table itab where mara~mtart in mtart
and vbrp~werks in werks and vbrk~fkdat in fkdat and ( vbrk~fkart = 'RE' )
and vbrk~kalsm <> 'ZJNET2' and vbrk~fksto <> 'X'.

loop at itab.
dc-werks = itab-werks.
* CASE itab-shkzg.
* WHEN 'S'.
dc-kzwi1r = itab-kzwi1.
* WHEN 'H'.
* dc-kzwi1r = - ( itab-kzwi1 ).
* ENDCASE.
collect dc.
clear dc-kzwi1.
endloop.

loop at main .
read table dc with key werks = main-werks.
if sy-subrc = 0.
main-kzwi1r = dc-kzwi1r.
endif.
modify main transporting kzwi1r.
clear dc-kzwi1r.
endloop.

refresh: itab, dc.

select vbrp~werks vbrp~kzwi1 vbrp~shkzg from vbrp inner join vbrk on


vbrp~vbeln = vbrk~vbeln inner join mara on vbrp~matnr = mara~matnr
into corresponding fields of table itab where mara~mtart in mtart
and vbrp~werks in werks and vbrk~fkdat in fkdat and ( vbrk~fkart = 'L2' ) and
vbrk~fksto <> 'X'.

loop at itab.
dc-werks = itab-werks.
* CASE itab-shkzg.
* WHEN 'S'.
dc-kzwi1dm = itab-kzwi1.
* WHEN 'H'.
* dc-kzwi1dm = - ( itab-kzwi1 ).
* ENDCASE.
collect dc.
clear dc-kzwi1.
endloop.
loop at main .
read table dc with key werks = main-werks.
if sy-subrc = 0.
main-kzwi1dm = dc-kzwi1dm.
endif.
modify main transporting kzwi1dm.
clear dc-kzwi1dm.
endloop.

refresh: itab, dc.

select vbrp~werks vbrp~kzwi1 vbrp~shkzg from vbrp inner join vbrk on


vbrp~vbeln = vbrk~vbeln inner join mara on vbrp~matnr = mara~matnr
into corresponding fields of table itab where mara~mtart in mtart
and vbrp~werks in werks and vbrk~fkdat in fkdat and ( vbrk~fkart = 'G2' )
and vbrk~ktgrd = '02' and vbrk~fksto <> 'X'.

loop at itab.
dc-werks = itab-werks.
* CASE itab-shkzg.
* WHEN 'S'.
dc-kzwi1cm = itab-kzwi1.
* WHEN 'H'.
* dc-kzwi1cm = - ( itab-kzwi1 ).
* ENDCASE.
collect dc.
endloop.

loop at main .
read table dc with key werks = main-werks.
if sy-subrc = 0.
main-kzwi1cm = dc-kzwi1cm.
endif.
modify main transporting kzwi1cm.
clear dc-kzwi1cm.
endloop.

LOOP AT main .
main-total = main-kzwi1 + main-kzwi1dm - main-kzwi1cm.
modify main TRANSPORTING total.
CLEAR main-total.
ENDLOOP.

SELECT * FROM t001w INTO CORRESPONDING FIELDS OF TABLE it_kukla


FOR ALL ENTRIES IN main WHERE werks = Main-werks.
LOOP AT main .
read table it_kukla with key werks = main-werks.
if sy-subrc = 0.
main-regio = it_kukla-regio.
endif.
modify main transporting regio.
clear it_kukla.
ENDLOOP.

SELECT * FROM T005U INTO CORRESPONDING FIELDS OF TABLE it_T005U


FOR ALL ENTRIES IN main WHERE BLAND = main-regio AND LAND1 = 'IN' AND SPRAS =
'E'.

LOOP AT main .
read table it_T005U with key BLAND = main-regio.
if sy-subrc = 0.
main-BEZEi = it_T005U-BEZEi.
endif.
modify main transporting BEZEi.
clear it_T005U.
ENDLOOP.

endform. " FETCH_DATA


class event_class definition.
*Handling double click
public section.
methods:
handle_double_click
for event double_click of cl_gui_alv_grid importing e_row .
endclass. "lcl_event_receiver DEFINITION

class event_class implementation.


method handle_double_click.

endmethod. "handle_double_click
endclass. "lcl_event_receiver IMPLEMENTATION

* **********************************************************************
* FORM : alv_output.
* Created : 24.01.2009 11:02:33
* *********************************************************************
FORM alv_output.
call screen 200.
ENDFORM. "alv_output.

*&---------------------------------------------------------------------*
*& Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module STATUS_0200 output.
SET PF-STATUS 'MAIN'.
SET TITLEBAR 'YBSS'.

endmodule. " STATUS_0200 OUTPUT


*&---------------------------------------------------------------------*
*& Module ALV_100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module ALV_100 output.
*Check if there is no custom container in screen 100
if c_cont1 is initial.
*Creating object of container
create object c_cont1
exporting
container_name = 'CCONT'.

create object c_alv1


exporting
i_parent = c_cont1.
gs_variant-report = syst-repid.
gs_variant-handle = 'GRID'.
*alv layout
perform alv_100_layout.
*alv field catalogue
perform alv_100_fieldcat.
*Displaying the ALV grid
call method c_alv1->set_table_for_first_display
exporting
is_layout = ty_lay1
i_save = 'A'
is_variant = gs_variant
changing
it_outtab = main[]
it_fieldcatalog = it_fieldcat.
endif.
endmodule. " ALV_100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module USER_COMMAND_0200 input.
case sy-ucomm .
when 'BACK'.
leave TO SCREEN 0.
when 'EXIT' .
leave program.
WHEN 'PUSH'.
SUBMIT YPLANTSALE2 WITH FKDAT IN FKDAT
WITH WERKS IN WERKS WITH mtart IN mtart.
* WHEN OTHERS.
endcase.
endmodule. " USER_COMMAND_0200 INPUT
form alv_100_layout .
ty_lay1-grid_title = 'Balance Sheet Sale'.
ty_lay1-zebra = 'X'.
* ty_lay1-no_toolbar = 'X'.
endform. " ALV_100_LAYOUT
*&---------------------------------------------------------------------*
*& Form ALV_100_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form alv_100_fieldcat .

clear ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 1.
ty_fieldcat-fieldname = 'WERKS'.
ty_fieldcat-tabname = 'GT_DD02L'.
ty_fieldcat-coltext = 'Plant'.
ty_fieldcat-outputlen = 5.
append ty_fieldcat to it_fieldcat.
clear ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 2.
ty_fieldcat-fieldname = 'KZWI1'.
ty_fieldcat-tabname = 'GT_DD02L'.
ty_fieldcat-coltext = 'Sale'.
ty_fieldcat-do_sum = 'X'.
ty_fieldcat-outputlen = 15.
append ty_fieldcat to it_fieldcat.
clear ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 3.
ty_fieldcat-fieldname = 'KZWI1R'.
ty_fieldcat-tabname = 'GT_DD02L'.
ty_fieldcat-coltext = 'Return'.
ty_fieldcat-do_sum = 'X'.
ty_fieldcat-outputlen = 15.
append ty_fieldcat to it_fieldcat.
clear ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 4.
ty_fieldcat-fieldname = 'KZWI1DM'.
ty_fieldcat-tabname = 'GT_DD02L'.
ty_fieldcat-coltext = 'Debit Memo'.
ty_fieldcat-do_sum = 'X'.
ty_fieldcat-outputlen = 15.
append ty_fieldcat to it_fieldcat.
clear ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 5.
ty_fieldcat-fieldname = 'KZWI1CM'.
ty_fieldcat-tabname = 'GT_DD02L'.
ty_fieldcat-coltext = 'Credit Memo'.
ty_fieldcat-do_sum = 'X'.
ty_fieldcat-outputlen = 15.
append ty_fieldcat to it_fieldcat.
clear ty_fieldcat.

ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 6.
ty_fieldcat-fieldname = 'TOTAL'.
ty_fieldcat-tabname = 'GT_DD02L'.
ty_fieldcat-coltext = 'Net Sale'.
ty_fieldcat-do_sum = 'X'.
ty_fieldcat-outputlen = 15.
append ty_fieldcat to it_fieldcat.
clear ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 7.
ty_fieldcat-fieldname = 'REGIO'.
ty_fieldcat-tabname = 'GT_DD02L'.
ty_fieldcat-coltext = 'Region Code'.
ty_fieldcat-outputlen = 15.
append ty_fieldcat to it_fieldcat.
clear ty_fieldcat.

ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 8.
ty_fieldcat-fieldname = 'BEZEI'.
ty_fieldcat-tabname = 'GT_DD02L'.
ty_fieldcat-coltext = 'Region Text'.
ty_fieldcat-outputlen = 15.
append ty_fieldcat to it_fieldcat.
clear ty_fieldcat.

endform.

----------------------------------------------------------------------------------
Extracted by Direct Download Enterprise version 1.3.1 - E.G.Mellodew. 1998-2005 UK.
Sap Release 750

You might also like