report zstock22sap

22

Upload: kamallochansahu

Post on 10-Aug-2015

14 views

Category:

Documents


0 download

DESCRIPTION

SAP

TRANSCRIPT

Page 1: Report Zstock22SAP
Page 2: Report Zstock22SAP
Page 3: Report Zstock22SAP
Page 4: Report Zstock22SAP

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

*& Report ZSTOCK_REGISTER

*&

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

*&

*&

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

REPORT ZSTOCK_REGISTER.

Page 5: Report Zstock22SAP

*REPORT zstock.

TYPE-POOLS: slis.

TABLES: mseg, makt, mkpf, t156t.

TYPES: BEGIN OF zstruc,

matnr TYPE mseg-matnr,"MATERIAL NO.

maktx TYPE makt-maktx,"MATERIAL DESCRIPTION

spras type makt-spras ,

erfmg TYPE mseg-erfmg,"QUANTITY

erfme TYPE mseg-erfme,"UNIT

werks TYPE mseg-werks,"PLANT NO

lgort TYPE mseg-lgort,"STORAGE LOCATION

budat TYPE mkpf-budat,"POSTING DATE

bktxt TYPE mkpf-bktxt,"HEADER TEXT

btext TYPE t156t-btext,"MOVEMENT TYPE TEXT

ebeln TYPE mseg-ebeln,"PURCHASE DOCUMENT NO

kostl TYPE mseg-kostl,"COST CENTER

lifnr TYPE mseg-lifnr,"VENDOR ACC.NO.

bwart TYPE mseg-bwart,"MOVEMENT TYPE

END OF zstruc.

TYPES: BEGIN OF zstruc1,

MBLNR TYPE MSEG-MBLNR,

matnr TYPE mseg-matnr,"MATERIAL NO.

erfmg TYPE mseg-erfmg,"QUANTITY

erfme TYPE mseg-erfme,"UNIT

Page 6: Report Zstock22SAP

werks TYPE mseg-werks,"PLANT NO

lgort TYPE mseg-lgort,"STORAGE LOCATION

ebeln TYPE mseg-ebeln,"PURCHASE DOCUMENT NO

kostl TYPE mseg-kostl,"COST CENTER

lifnr TYPE mseg-lifnr,"VENDOR ACC.NO.

bwart TYPE mseg-bwart,"MOVEMENT TYPE

END OF zstruc1.

TYPES: BEGIN OF zstruc2,

MATNR TYPE MSEG-MATNR,

maktx TYPE makt-maktx,"MATERIAL DESCRIPTION

SPRAS TYPE MAKT-SPRAS,

END OF zstruc2.

TYPES: BEGIN OF zstruc3,

MBLNR TYPE MKPF-MBLNR,

budat TYPE mkpf-budat,"POSTING DATE

bktxt TYPE mkpf-bktxt,"HEADER TEXT

END OF zstruc3.

TYPES: BEGIN OF zstruc4,

SPRAS TYPE T156T-SPRAS,

btext TYPE t156t-btext,"MOVEMENT TYPE TEXT

END OF zstruc4.

Page 7: Report Zstock22SAP

DATA: v_CPROG TYPE sy-CPROG,

wa_fieldcat TYPE slis_fieldcat_alv,

it_fieldcat TYPE slis_t_fieldcat_alv,

itab TYPE standard TABLE OF zstruc,

itab1 type standard table of zstruc,

layout_in TYPE slis_layout_alv,

it_events TYPE slis_t_event,

wa_events TYPE slis_alv_event,

It_sort TYPE slis_t_sortinfo_alv,

WA_sort TYPE slis_sortinfo_alv.

DATA: fn TYPE slis_fieldname.

DATA: K TYPE I.

*v_CPROG = sy-CPROG.

*provide select-options

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: date FOR mkpf-budat OBLIGATORY.

SELECT-OPTIONS: MATERIAL FOR mseg-matnr OBLIGATORY.

SELECTION-SCREEN: END OF BLOCK b1.

Page 8: Report Zstock22SAP

START-OF-SELECTION.

* SELECT DISTINCT kna1~name1 makt~maktx zweigh~lgort SUM( zweigh~ntwht )

* INTO TABLE itab FROM

* kna1 INNER JOIN zweigh ON kna1~kunnr = zweigh~kunnr INNER JOIN makt ON makt~matnr = zweigh~matnr

*WHERE zweigh~erdat IN date GROUP BY zweigh~lgort kna1~name1 makt~maktx.

*select g~matnr

* k_maktx

* g~erfmg

* g~erfme

* g~werks

* g~lgort

* f~budat

* f~bktxt

* t1~btext

* g~ebeln

* g~kostl

* g~lifnr

* g~bwart

* into table itab from mseg as g inner join makt as k

* on g~mandt = k~mandt

* inner join mkpf as f on g~mandt = f~mandt

"it is for field catalog

Page 9: Report Zstock22SAP

"it is for events

" DATA SORTING AND SUBTOTAL

K = SY-DBCNT.

* IF sy-subrc = 0.

* SORT itab BY matnr.

* ENDIF.

perform fetch.

PERFORM field_cat.

PERFORM build_layout.

PERFORM sub_populate_sort.

PERFORM sub_get_event.

PERFORM DISPLAY_ALV_REPORT.

*END-OF-SELECTION.

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

*& Form fetch

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

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

Page 10: Report Zstock22SAP

FORM fetch .

SELECT

mseg~matnr "MATERIAL NO.

makt~maktx "MATERIAL DESCRIPTION

makt~spras

mseg~erfmg "QUANTITY

mseg~erfme "UNIT

mseg~werks "PLANT NO

mseg~lgort "STORAGE LOCATION

mkpf~budat "POSTING DATE

mkpf~bktxt "HEADER TEXT

t156t~btext "MOVEMENT TYPE TEXT

mseg~ebeln "PURCHASE DOCUMENT NO.

mseg~kostl "COST CENTER

mseg~lifnr "VENDOR ACC. NO.

mseg~bwart "MOVEMENT TYPE

INTO TABLE itab FROM

mseg INNER JOIN makt ON mseg~matnr = makt~matnr

INNER JOIN mkpf ON mseg~mblnr = mkpf~mblnr

INNER JOIN t156t ON mseg~bwart = t156t~bwart

WHERE mkpf~budat IN date AND MSEG~MATNR IN MATERIAL

AND makt~SPraS = 'E'.

itab1[] = itab[].

Page 11: Report Zstock22SAP

sort itab1 by matnr.

delete adjacent duplicates from itab1 comparing matnr.

ENDFORM. " fetch

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

*&

*Form FIELD_CAT.

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

*

*text

*----------------------------------------------------------------------*

* --> p1

*text

* <-- p2

*text

*----------------------------------------------------------------------*

FORM field_cat .

wa_fieldcat-col_pos = 1.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-key = 'X'.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'MATERIAL NO.'.

Page 12: Report Zstock22SAP

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 2.

wa_fieldcat-fieldname = 'MAKTX'.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'MATERIAL DESC'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

"provide field catalog perform

wa_fieldcat-col_pos = 3.

wa_fieldcat-fieldname = 'ERFMG'.

wa_fieldcat-datatype = 'QUAN'.

* wa_fieldcat-do_sum = 'X'.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'QUANTITY.'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 4.

wa_fieldcat-fieldname = 'ERFME'.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'UNIT'.

APPEND wa_fieldcat TO it_fieldcat.

Page 13: Report Zstock22SAP

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 5.

wa_fieldcat-fieldname = 'WERKS'.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'PLANT NO.'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 6.

wa_fieldcat-fieldname = 'LGORT'.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'STORAGE LOCATION'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 7.

wa_fieldcat-fieldname = 'BUDAT '.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'POSTING DATE'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 8.

wa_fieldcat-fieldname = 'BKTXT '.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'HEADER TEXT'.

Page 14: Report Zstock22SAP

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 9.

wa_fieldcat-fieldname = 'BTEXT'.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'MOVEMENT TYPE TEXT'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 10.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'PURCHASE DOC. NO.'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 11.

wa_fieldcat-fieldname = 'KOSTL'.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'COST CENTER'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 12.

wa_fieldcat-fieldname = 'LIFNR'.

wa_fieldcat-tabname = 'ITAB1'.

Page 15: Report Zstock22SAP

wa_fieldcat-seltext_l = 'VENDOR ACC. NO.'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 13.

wa_fieldcat-fieldname = 'BWART'.

wa_fieldcat-tabname = 'ITAB1'.

wa_fieldcat-seltext_l = 'MOVEMENT TYPE'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_events-form = 'TOP_PAGE'.

wa_events-name = 'TOP_OF_PAGE'.

APPEND wa_events TO it_events.

ENDFORM." FIELD_CAT

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

*&

*Form BUILD_LAYOUT

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

**

*text

**----------------------------------------------------------------------*

** --> p1

*text

** <-- p2

*text

Page 16: Report Zstock22SAP

*----------------------------------------------------------------------*

form BUILD_LAYOUT .

clear layout_in.

layout_in-no_input = 'X'.

layout_in-colwidth_optimize = 'X'.

* layout_in-totals_text

*= 'Totals'(201).

* Set layout field for row attributes(i.e. color)

layout_in-info_fieldname = 'LINE_COLOR'.

* layout_in-totals_only

*= 'X'.

layout_in-f2code = 'DISP'. "Sets fcode for when double "click(press f2)

layout_in-zebra = 'X'.

* layout_in-group_change_edit = 'X'.

layout_in-header_text = 'helllllo'.

endform. " BUILD_LAYOUT

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

*&

*Form SUB_POPULATE_SORT

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

**

*text

*

**----------------------------------------------------------------------*

** --> p1

Page 17: Report Zstock22SAP

*text

** <-- p2

*text

*----------------------------------------------------------------------*

form SUB_POPULATE_SORT .

CLEAR WA_sort.

WA_sort-fieldname = 'MATNR'.

WA_sort-tabname = 'itab1'.

WA_sort-up = 'X'.

WA_sort-subtot = 'X'.

APPEND WA_SORT TO IT_SORT.

* gs_sort-fieldname = 'LGORT'.

* gs_sort-tabname = 'itab'.

* gs_sort-up = 'X'.

* gs_sort-spos = '01'.

* gs_sort-subtot = 'X'.

"****CRUCIAL STATEMENT*****

* APPEND gs_sort TO gt_sort.

* gs_sort-fieldname = 'NTWHT'.

* gs_sort-tabname = 'itab'.

* gs_sort-up = 'X'.

* gs_sort-spos = '02'.

* gs_sort-subtot = 'X'.

"****CRUCIAL STATEMENT*****

Page 18: Report Zstock22SAP

endform. " SUB_POPULATE_SORT

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

*&

*Form SUB_GET_EVENT

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

**

*text

**----------------------------------------------------------------------*

** --> p1

*text

** <-- p2

*text

**----------------------------------------------------------------------*

form SUB_GET_EVENT .

*CONSTANTS : c_formname_subtotal_text TYPE slis_formname VALUE 'SUBTOTAL_TEXT'.

*DATA: l_s_event TYPE slis_alv_event.

*CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

*EXPORTING

*i_list_type = 4

*IMPORTING

* et_events

*= it_events

*EXCEPTIONS

*list_type_wrong = 0

*OTHERS

*= 0.

Page 19: Report Zstock22SAP

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 4

IMPORTING

ET_EVENTS = it_events

EXCEPTIONS

LIST_TYPE_WRONG = 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.

* Subtotal

READ TABLE it_events INTO wa_events WITH KEY name = 'SUBTOTAL_TEXT'.

IF sy-subrc = 0.

WA_EVENTS-FORM = 'SUBTOTAL'.

MODIFY it_events FROM WA_eventS INDEX sy-tabix TRANSPORTING FORM.

ENDIF.

endform.

" SUB_GET_EVENT

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

*&

*Form DISPLAY_ALV_REPORT

Page 20: Report Zstock22SAP

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

**

*text

**----------------------------------------------------------------------*

** --> p1

*text

** <-- p2

*text

*----------------------------------------------------------------------*

form DISPLAY_ALV_REPORT .

v_CPROG = sy-CPROG.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = V_CPROG

is_layout = layout_in

it_fieldcat = it_fieldcat

i_default = 'X'

i_grid_title = 'STOCK REGISTER'

IT_SORT = IT_SORT

TABLES

t_outtab = itab1

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.

Page 21: Report Zstock22SAP

ENDIF.

endform.

" DISPLAY_ALV_REPORT