Go on link..

link us with ...

Thursday, December 30, 2010

Stock Statement Summary Report

*&---------------------------------------------------------------------*
*& Report ZVVF_MR046_STOCK_SUMMARY *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT ZVVF_MR046_STOCK_SUMMARY no standard page heading line-size 246
MESSAGE-ID ZMM .

*---------------------------------------------------------------------*
* MODULE MM. *
*---------------------------------------------------------------------*
* Objective : Stock Statement Summary Report
*
*
*
* Technical Spec No .
* Date Created
* Author
* Location
* LDB Nil
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*

*---------------------------------------------------------------------*
* Amendment History *
*---------------------------------------------------------------------*
* Who Change ID Reason *
* ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ *
*---------------------------------------------------------------------*

*---------------------------------------------------------------------**
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS : slis.

*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*

tables : mseg, "Document Segment: Material
makt, "Material Descriptions
mkpf, "Header: Material Document
ekpo, "Purchasing Document Item
MARDH, "Batch Stocks: History
MARD, "Batch Stocks
mara, "General Material Data
J_1IMTCHID,
marc.

*---------------------------------------------------------------------*
* Types Begin with TY_ *
*---------------------------------------------------------------------*

Types : begin of ty_display,
matnr like mard-matnr,
maktx like makt-maktx,
WERKS LIKE mard-WERKS,
vprsv like mbew-vprsv,
verpr like mbew-verpr,
stprs like mbew-stprs,
labst like mard-labst,
insme like mard-insme,
speme like mard-speme,
othst like mard-speme,
lbkum like mbew-lbkum,
salk3 like mbew-salk3,
excse(15) type c,
end of ty_display.

Types : begin of ty_MARD1,
matnr like mard-matnr,
lgort like mard-lgort,
labst like mard-labst,
insme like mard-insme,
speme like mard-speme,
end of ty_MARD1.


Types : begin of ty_MBEW,
matnr like mbew-matnr,
vprsv like mbew-vprsv,
verpr like mbew-verpr,
stprs like mbew-stprs,
lbkum like mbew-lbkum,
salk3 like mbew-salk3,
end of ty_MBEW.

Types : begin of ty_MARD,
matnr like mard-matnr,
labst like mard-labst,
insme like mard-insme,
speme like mard-speme,
end of ty_MARD.


Types : begin of ty_display1,
matnr like mard-matnr,
maktx like makt-maktx,
WERKS LIKE mard-WERKS,
vprsv like mbew-vprsv,
verpr like mbew-verpr,
stprs like mbew-stprs,
labst like mard-labst,
insme like mard-insme,
speme like mard-speme,
othst like mard-speme,
lbkum like mbew-lbkum,
salk3 like mbew-salk3,
excse(15) type c,
end of ty_display1.

Types : begin of ty_mara1,
matnr like mard-matnr,
end of ty_mara1.

Types : begin of ty_mara,
matnr like marC-matnr,
WERKS LIKE MARC-WERKS,
maktx like makt-maktx,
end of ty_mara.
**---------------------------------------------------------------------*
* Constants Begin with C_
**---------------------------------------------------------------------*
*--- For ALV ----*
CONSTANTS: c_top_of_page_db TYPE slis_formname VALUE 'TOP_OF_PAGE_DB'.

*---------------------------------------------------------------------*
* Internal tables Begin with IT_ *
*---------------------------------------------------------------------*
*--- For ALV ----*
DATA: it_list_top_of_page TYPE slis_t_listheader,
it_events TYPE slis_t_event,
it_fieldcat TYPE slis_t_fieldcat_alv.

data : it_display type standard table of ty_display with header line,
it_display1 type standard table of ty_display1 with header line,
it_MARD type standard table of ty_MARD with header line,
it_MARD1 type standard table of ty_MARD1 with header line,
it_MBEW type standard table of ty_MBEW with header line,
it_mara type standard table of ty_mara with header line,
it_mara1 type standard table of ty_mara1 with header line,
it_EXC type standard table of ty_mara with header line..
*---------------------------------------------------------------------*
* Work Area Begin with WA_ *
*---------------------------------------------------------------------*
data : wa_display like line of it_display,
wa_display1 like line of it_display1,
wa_EXC like line of it_EXC,
wa_MARD like line of it_MARD,
wa_MBEW like line of it_MBEW,
wa_MARa like line of it_MARa,
wa_MARD1 like line of it_MARD1,
WA_layout TYPE slis_layout_alv. " For ALV

*---------------------------------------------------------------------*
* Data Begin with W_ *
*---------------------------------------------------------------------*
DATA : W_DATE LIKE MKPF-BUDAT,
W_DATE1 LIKE MKPF-BUDAT,
W_DATE2 LIKE MKPF-BUDAT,
W_DATE3 LIKE MKPF-BUDAT,
W_DATE4 LIKE MKPF-BUDAT,
W_BUPER LIKE T009B-POPER,
W_lfmon LIKE mchb-lfmon,
W_YEAR LIKE T009B-BDATJ,
W_RMENGE LIKE MSEG-MENGE,
W_MON(2) TYPE N,
W_TABIX TYPE SY-TABIX,
W_CNT TYPE I,
W_CNT1 TYPE I,
W_CNT2 TYPE I,
W_IMENGE LIKE MSEG-MENGE,
w_maktx like makt-maktx,
W_KEY LIKE INOB-OBJEK,
W_STRENGTH LIKE AUSP-ATFLV,
W_REPID LIKE SY-REPID.



*---------------------------------------------------------------------*
* Select Options Begin with SO_ *
*---------------------------------------------------------------------*


selection-screen : begin of block b1 with frame title text-001.
PARAMETERS : PR_plant LIKE mseg-werks .
PARAMETERS : PR_date LIKE sy-datum obligatory.
select-options : so_matnr for mara-matnr . "Material code
select-options : so_mtart for mara-mtart. "Material Type
select-options : so_matkl for mara-matkl. "Material Group
selection-screen : end of block b1.

selection-screen : begin of block b2 with frame title text-002.
PARAMETERS : PR_nexc type c RADIOBUTTON GROUP GRP.
PARAMETERS : PR_exc type c RADIOBUTTON GROUP GRP.
PARAMETERS : PR_all type c RADIOBUTTON GROUP GRP.
selection-screen : end of block b2.


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


*---------------------------------------------------------------------*
* Ranges Begin with R_ *
*---------------------------------------------------------------------*
ranges : r_movtype for mseg-bwart, "Movement type
r_date for sy-datum, "Date
r_movrec for mseg-bwart,
r_moviss for mseg-bwart,
r_movtra for mseg-bwart.
*---------------------------------------------------------------------*
* Initialisation *
*---------------------------------------------------------------------*
initialization.
w_repid = SY-REPID.
*---------------------------------------------------------------------*
* At selection-screen *
*---------------------------------------------------------------------*
at selection-screen .

***********************************************************************
* S T A R T O F S E L E C T I O N *
***********************************************************************


start-of-selection.

perform get_mard.


end-of-selection.
* perform loop_display.
PERFORM fieldcat_init USING it_fieldcat[].
PERFORM eventtab_build USING it_events[].
PERFORM comment_build USING it_list_top_of_page[].
PERFORM layout_build USING WA_layout.
PERFORM write_alv_grid.

*&---------------------------------------------------------------------*
*& Form get_mard
*&---------------------------------------------------------------------*
form get_mard.

perFORM FISCAL_PERIOD USING PR_DATE
CHANGING W_BUPER
W_YEAR.

select marc~matnr
marc~WERKS
makt~maktx
from marc inner join makt on
marc~matnr = makt~matnr
INNER JOIN MARA ON
marc~matnr = MARA~matnr
into CORRESPONDING FIELDS OF TABLE it_mara
where marc~matnr in so_matnr and
marc~werks = pr_plant and
marA~MATKL IN SO_MATKL and
marA~MTART IN SO_MTART and
makt~spras = sy-langu.

IF SY-SUBRC = 0.
SELECT MATNR LGORT LABST INSME SPEME FROM MARD INTO
corresponding fields of table it_MARD1
for all entries in it_mara
where matnr = it_mara-matnr and
werks = pr_plant .
* lfgja = W_YEAR and
* lfmon = W_buper+1(2).

IF SY-SUBRC = 0.
LOOP AT IT_MARD1 INTO WA_MARD1.
MOVE-CORRESPONDING WA_MARD1 TO WA_MARD.
COLLECT WA_MARD INTO IT_MARD.
ENDLOOP.
ENDIF.

SELECT MATNR VPRSV VERPR STPRS LBKUM SALK3 FROM MBEW INTO
corresponding fields of table it_MBEW
for all entries in it_mara
where matnr = it_mara-matnr AND
BWKEY = pr_plant.
else.
message e006.
ENDIF.


select matnr from J_1IMTCHID into CORRESPONDING FIELDS OF TABLE it_EXC
where WERKS = pr_plant and
J_1ICAPIND NE 'N' .


loop at it_mara INTO WA_MARA.

MOVE-CORRESPONDING WA_MARA TO WA_DISPLAY.


READ TABLE IT_MARD INTO WA_MARD WITH KEY MATNR = WA_MARA-MATNR.
IF SY-SUBRC = 0.
WA_DISPLAY-LABST = WA_MARD-LABST.
WA_DISPLAY-INSME = WA_MARD-INSME.
WA_DISPLAY-SPEME = WA_MARD-SPEME.
ENDIF.

READ TABLE IT_MBEW INTO WA_MBEW WITH KEY MATNR = WA_MARA-MATNR.
IF SY-SUBRC = 0.
wa_display-VPRSV = WA_MBEW-VPRSV.
wa_display-VERPR = WA_MBEW-VERPR.
wa_display-STPRS = WA_MBEW-STPRS.
wa_display-LBKUM = WA_MBEW-LBKUM.
wa_display-SALK3 = WA_MBEW-SALK3.
else.
wa_display-lbkum = WA_MARD-LABST + WA_MARD-INSME + WA_MARD-SPEME.
ENDIF.

wa_display-othst = wa_display-lbkum - wa_display-labst -
wa_display-insme - wa_display-speme.


READ TABLE IT_EXC INTO WA_EXC WITH KEY MATNR = WA_MARA-MATNR.
IF SY-SUBRC = 0.
WA_DISPLAY-EXCSE = 'Yes'.
ENDIF.
PERFORM MATNR_FORMAT.
append wa_display to it_display.
clear : wa_display,WA_MARD,WA_MBEW.
ENDLOOP.


if PR_nexc = 'X'.
delete it_display where excse = 'Yes'.
endif.

if PR_exc = 'X'.
delete it_display where excse = ' '.
endif.


endform.
*&---------------------------------------------------------------------*
*& Form FISCAL_PERIOD
*&---------------------------------------------------------------------*
FORM FISCAL_PERIOD USING W_DATE
CHANGING W_BUPER
W_YEAR.
***find the fiscal year and month of previous year&month
call function 'DATE_TO_PERIOD_CONVERT'
EXPORTING
i_date = W_DATE
i_periv = 'V3'
IMPORTING
e_buper = w_buper
e_gjahr = w_year.
ENDFORM.

*&--------------------------------------------------------------------*
*& Form fieldcat_init
*&--------------------------------------------------------------------*
FORM fieldcat_init USING lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA : wa_fieldcat TYPE slis_fieldcat_alv.
DATA :w_pos TYPE i VALUE 0.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = 'Material'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'MAKTX'.
wa_fieldcat-seltext_m = 'Material Description'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '25'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_m = 'Plant'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '5'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'VPRSV'.
wa_fieldcat-seltext_m = 'Price Control'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'VERPR'.
wa_fieldcat-seltext_m = 'MAP'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'STPRS'.
wa_fieldcat-seltext_m = 'Standard Price'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'LABST'.
wa_fieldcat-seltext_m = 'Unrestricted use Stock'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'INSME'.
wa_fieldcat-seltext_m = 'Quality Inspection Stock'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'SPEME'.
wa_fieldcat-seltext_m = 'Blocked Stock'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.



w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'OTHST'.
wa_fieldcat-seltext_m = 'Other Stock'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'LBKUM'.
wa_fieldcat-seltext_m = 'Total Stock'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'SALK3'.
wa_fieldcat-seltext_m = 'Stock Value'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_DISPLAY'.
wa_fieldcat-fieldname = 'EXCSE'.
wa_fieldcat-seltext_m = 'Excisable'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '5'.
APPEND wa_fieldcat TO lt_fieldcat.


ENDFORM. " fieldcat_init

*&---------------------------------------------------------------------*
*& Form eventtab_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_EVENTS[] text
*----------------------------------------------------------------------*
FORM eventtab_build USING lt_events TYPE slis_t_event.
DATA: wa_event TYPE slis_alv_event.
DATA: c_top_of_page TYPE slis_formname.

c_top_of_page = c_top_of_page_db.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO wa_event.
IF sy-subrc <> 0.
MOVE c_top_of_page TO wa_event-form.
APPEND wa_event TO lt_events.
ELSE.
MOVE c_top_of_page TO wa_event-form.
MODIFY lt_events FROM wa_event INDEX sy-tabix .
ENDIF.

ENDFORM. " eventtab_build

*&---------------------------------------------------------------------*
*& Form comment_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM comment_build USING lt_top_of_page TYPE slis_t_listheader.
DATA: wa_line TYPE slis_listheader.
CLEAR wa_line.
wa_line-typ = 'H'.
wa_line-info = 'VVF LTD. Mumbai'.
APPEND wa_line TO lt_top_of_page.

wa_line-typ = 'H'.
wa_line-info = SY-ULINE.
APPEND wa_line TO lt_top_of_page.

wa_line-typ = 'H'.
wa_line-info = 'Stock Statement-Summary'.
APPEND wa_line TO lt_top_of_page.

ENDFORM. " comment_build

*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_WA_layout text
*----------------------------------------------------------------------*
FORM layout_build USING wa_layout TYPE slis_layout_alv.
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
* wa_layout-no_totalline = 'X'.
** wa_layout-edit = 'X'.
ENDFORM. " layout_build

*&---------------------------------------------------------------------*
*& Form write_alv_grid
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM write_alv_grid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
i_background_id = 'ALV_BACKGROUND'
I_CALLBACK_TOP_OF_PAGE = c_top_of_page_db
is_layout = WA_layout
it_fieldcat = it_fieldcat[]
it_events = it_events[]
i_save = 'A'
TABLES
t_outtab = IT_DISPLAY
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.


ENDFORM. " write_alv_grid

*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE_DB *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE_DB.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_list_top_of_page
i_logo = ' '.
ENDFORM. "top_of_page_db

*&--------------------------------------------------------------------*
*& Form MATNR_FORMAT
*&--------------------------------------------------------------------*
* MATNR FORMAT
*---------------------------------------------------------------------*
FORM MATNR_FORMAT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = WA_DISPLAY-MATNR
IMPORTING
OUTPUT = WA_DISPLAY-MATNR.
ENDFORM.

No comments:

link us...

For Visitors

if you want to publish or Add something on ERP, SAP , SAP FUNCTIONAL, SAP ABAP then mail us along with your email-id. contain must be yours

email-id :- avinashkr_raj@yahoo.com(any email)

email-id :- avinaskr_raj.abap@blogger.com ( use only gmail)