Date post: | 10-Aug-2015 |
Category: |
Documents |
Upload: | kamallochansahu |
View: | 14 times |
Download: | 0 times |
*&---------------------------------------------------------------------*
*& Report ZSTOCK_REGISTER
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZSTOCK_REGISTER.
*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
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.
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.
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
"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
*----------------------------------------------------------------------*
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[].
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.'.
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.
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'.
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'.
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
*----------------------------------------------------------------------*
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
*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*****
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.
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
**&---------------------------------------------------------------------*
**
*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.
ENDIF.
endform.
" DISPLAY_ALV_REPORT